PRISM
 v0.0.0
Loading...
Searching...
No Matches
YamlHelper.h
1//* This file is a part of PRISM: Plasma Reaction Input SysteM,
2//* A library for parcing chemical reaction networks for plasma chemistry
3//* https://github.com/NCSU-ComPS-Group/prism
4//*
5//* Licensed under MIT, please see LICENSE for details
6//* https://opensource.org/license/mit
7//*
8//* Copyright 2024, North Carolina State University
9//* ALL RIGHTS RESERVED
10//*
11#pragma once
12#include <string>
13#include <vector>
14#include "yaml-cpp/yaml.h"
15
16namespace prism
17{
18
19template <typename T>
20T defaultValue();
21
22template <typename T>
23std::string getTypeName();
24
25bool paramProvided(const std::string & param, const YAML::Node & node, const bool required);
26
27template <typename T>
28std::vector<T> getParams(const std::string & param, const YAML::Node & node, const bool required);
29template <typename T>
30T getParam(const std::string & param, const YAML::Node & node, const bool required);
31
32const std::vector<std::string> getExtraParams(const YAML::Node & node,
33 const std::vector<std::string> & allowed);
34}