CLASSpp Manual
Cosmology reference and developer manual
Loading...
Searching...
No Matches
species_input.h
1
#pragma once
2
3
#include <optional>
4
#include <stdexcept>
5
#include <string>
6
#include <vector>
7
8
#include "
errors.h
"
9
#include "parser.h"
10
17
class
SpeciesInput
{
18
public
:
19
SpeciesInput
(
FileContent
* pfc, std::string instance_name);
20
21
const
std::string& instance_name()
const
{
22
return
instance_name_;
23
}
24
27
template
<
class
T>
28
std::optional<T>
get
(
const
std::string& field)
const
{
29
return
pfc_->
get
<T>(qualify(field));
30
}
31
33
template
<
class
T>
34
T
get_or
(
const
std::string& field, T fallback)
const
{
35
if
(
auto
v = get<T>(field))
36
return
*v;
37
return
fallback;
38
}
39
41
template
<
class
T>
42
T
require
(
const
std::string& field)
const
{
43
if
(
auto
v = get<T>(field))
44
return
*v;
45
class_stop_severe(
"species '%s': missing required field '%s'"
,
46
instance_name_.c_str(),
47
field.c_str());
48
}
49
50
private
:
51
std::string qualify(
const
std::string& field)
const
;
52
53
FileContent
* pfc_;
54
std::string instance_name_;
55
};
56
57
std::vector<std::string> CollectInstanceFieldValues(
FileContent
* pfc,
58
const
std::vector<std::string>& instances,
59
const
std::string& field);
60
61
bool
AnyInstanceFieldValue(
const
std::vector<std::string>& values);
62
63
bool
SynthesiseIdenticalScalarField(
FileContent
* pfc,
64
const
std::vector<std::string>& instances,
65
const
std::string& dot_field,
66
const
std::string& legacy_key,
67
const
std::string& species_description);
68
80
void
TranslateSingleInstanceDotSyntax(
FileContent
* pfc);
FileContent
Definition
parser.h:21
FileContent::get
std::optional< T > get(const std::string &name) const
SpeciesInput
Definition
species_input.h:17
SpeciesInput::get
std::optional< T > get(const std::string &field) const
Definition
species_input.h:28
SpeciesInput::require
T require(const std::string &field) const
Definition
species_input.h:42
SpeciesInput::get_or
T get_or(const std::string &field, T fallback) const
Definition
species_input.h:34
errors.h
species
species_input.h
Generated by
1.9.8