Reaktoro  v2.11.0
A unified framework for modeling chemically reactive systems

The class used to store and retrieve data for assemblying chemical systems. More...

#include <Data.hpp>

Classes

struct  Decode
 Used to allow conversion of Data objects to objects with custom types. More...
 
struct  Encode
 Used to allow conversion of objects with custom types to Data objects. More...
 
struct  Opt
 Used as the return type of method Data::optional. More...
 

Public Member Functions

 Data ()
 Construct a default Data instance with null value.
 
auto asBoolean () const -> bool
 Return this Data object as a boolean value.
 
auto asString () const -> String const &
 Return this Data object as a string.
 
auto asInteger () const -> int
 Return this Data object as an integer number.
 
auto asFloat () const -> double
 Return this Data object as a float number.
 
auto asDict () const -> Dict< String, Data > const &
 Return this Data object as a dictionary object.
 
auto asList () const -> Vec< Data > const &
 Return this Data object as a list object.
 
auto asNull () const -> Nullptr
 Return this Data object as a nullptr value.
 
auto isBoolean () const -> bool
 Return true if this Data object is a boolean value.
 
auto isString () const -> bool
 Return true if this Data object is a string.
 
auto isInteger () const -> bool
 Return true if this Data object is an integer number.
 
auto isFloat () const -> bool
 Return true if this Data object is a float number.
 
auto isDict () const -> bool
 Return true if this Data object is a dictionary object.
 
auto isList () const -> bool
 Return true if this Data object is a list object.
 
auto isNull () const -> bool
 Return true if this Data object is a null value.
 
auto operator[] (String const &key) const -> Data const &
 Return the child Data object with given key, presuming this Data object is a dictionary. More...
 
auto operator[] (Index const &index) const -> Data const &
 Return the child Data object with given index, presuming this Data object is a list. More...
 
auto operator[] (String const &key) -> Data &
 Return the child Data object with given key if, presuming this Data object is a dictionary. More...
 
auto operator[] (Index const &index) -> Data &
 Return the child Data object with given index, presuming this Data object is a list. More...
 
auto at (String const &key) const -> Data const &
 Return the child Data object with given key, presuming this Data object is a dictionary. More...
 
auto at (Index const &index) const -> Data const &
 Return the child Data object with given index, presuming this Data object is a list. More...
 
auto optional (String const &key) const -> Opt
 Return an optional child Data object with given key, presuming this Data object is a dictionary. More...
 
auto required (String const &key) const -> Data const &
 Return a required to exist child Data object with given key, presuming this Data object is a dictionary. More...
 
auto with (String const &attribute, String const &value) const -> Data const &
 Return the child Data object whose attribute has a given value, presuming this Data object is a list.
 
auto add (Data data) -> void
 Add a Data object to this Data object, which becomes a list if not already.
 
auto add (String const &key, Data data) -> void
 Add a Data object with given key to this Data object, which becomes a dictionary if not already.
 
auto update (Data const &data) -> void
 Update this Data object with data given in another, with key-value pairs being either added or overwritten.
 
auto reset () -> void
 Reset this Data object to a null state, deleting its current stored data.
 
auto exists (String const &key) const -> bool
 Return true if a child Data object exists with given key, presuming this Data object is a dictionary.
 
auto dump () const -> String
 Return a YAML formatted string representing the state of this Data object.
 
auto dumpYaml () const -> String
 Return a YAML formatted string representing the state of this Data object.
 
auto dumpJson () const -> String
 Return a JSON formatted string representing the state of this Data object.
 
auto save (String const &filepath) const -> void
 Save the state of this Data object into a YAML formatted file.
 
auto saveYaml (String const &filepath) const -> void
 Save the state of this Data object into a YAML formatted file.
 
auto saveJson (String const &filepath) const -> void
 Save the state of this Data object into a JSON formatted file.
 
auto repr () const -> String
 Return a YAML formatted string representing the state of this Data object.
 
template<typename T >
auto operator= (T const &obj) -> Data &
 Assign an object of type T to this Data object.
 
template<typename T >
 operator T () const
 Convert this Data object to one of type T.
 
template<typename T >
 Data (T const &obj)
 Construct a Data object from one of type T.
 
template<typename T >
auto assign (T const &obj) -> void
 Assign an object of type T to this Data object.
 
auto assign (char obj) -> void
 Assign a char to this Data object.
 
auto assign (Chars obj) -> void
 Assign a raw string to this Data object.
 
template<typename T >
auto as () const -> T
 Convert this Data object into an object of type T.
 
template<typename T >
auto to (T &obj) const -> void
 Decode this Data object into an object of type T.
 

Static Public Member Functions

static auto parse (Chars text) -> Data
 Return a Data object by parsing an YAML formatted string.
 
static auto parse (String const &text) -> Data
 Return a Data object by parsing an YAML formatted string.
 
static auto parse (std::istream &text) -> Data
 Return a Data object by parsing an YAML formatted string.
 
static auto parseYaml (Chars text) -> Data
 Return a Data object by parsing an YAML formatted string.
 
static auto parseYaml (String const &text) -> Data
 Return a Data object by parsing an YAML formatted string.
 
static auto parseYaml (std::istream &text) -> Data
 Return a Data object by parsing an YAML formatted string.
 
static auto parseJson (Chars text) -> Data
 Return a Data object by parsing a JSON formatted string.
 
static auto parseJson (String const &text) -> Data
 Return a Data object by parsing a JSON formatted string.
 
static auto parseJson (std::istream &text) -> Data
 Return a Data object by parsing a JSON formatted string.
 
static auto load (String const &path) -> Data
 Return a Data object by parsing either an YAML or JSON formatted file at a given path. More...
 
static auto loadYaml (String const &path) -> Data
 Return a Data object by parsing an YAML formatted file at a given path.
 
static auto loadJson (String const &path) -> Data
 Return a Data object by parsing a JSON formatted file at a given path.
 

Detailed Description

The class used to store and retrieve data for assemblying chemical systems.

Member Function Documentation

◆ load()

static auto load ( String const &  path) -> Data
static

Return a Data object by parsing either an YAML or JSON formatted file at a given path.

Ensure path terminates with extensions .yml, .yaml, or .json, which are used to identify the file format.

◆ operator[]() [1/4]

auto operator[] ( String const &  key) const -> Data const &

Return the child Data object with given key, presuming this Data object is a dictionary.

This method throws an error if this Data object is not a dictionary or if the given key does not exist.

◆ operator[]() [2/4]

auto operator[] ( Index const &  index) const -> Data const &

Return the child Data object with given index, presuming this Data object is a list.

This method throws an error if this Data object is not a list or if the given index is out of bounds.

◆ operator[]() [3/4]

auto operator[] ( String const &  key) -> Data &

Return the child Data object with given key if, presuming this Data object is a dictionary.

If this Data object is null, this method converts it into a dictionary with one entry with given key whose associated value is null. If this Data object is a dictionary without an entry with given key, a new entry with given key is created whose associated value is null. Otherwise, a runtime error is thrown.

◆ operator[]() [4/4]

auto operator[] ( Index const &  index) -> Data &

Return the child Data object with given index, presuming this Data object is a list.

If this Data object is null and index is 0, this method converts it into a list with one entry whose value is null. Otherwise, this method throws an error if this Data object is not a list or it is a list and given index is out of bounds.

◆ at() [1/2]

auto at ( String const &  key) const -> Data const &

Return the child Data object with given key, presuming this Data object is a dictionary.

This method throws an error if this Data object is not a dictionary or if the given key does not exist.

◆ at() [2/2]

auto at ( Index const &  index) const -> Data const &

Return the child Data object with given index, presuming this Data object is a list.

This method throws an error if this Data object is not a list or if the given index is out of bounds.

◆ optional()

auto optional ( String const &  key) const -> Opt

Return an optional child Data object with given key, presuming this Data object is a dictionary.

This method throws an error if this Data object is not a dictionary.

◆ required()

auto required ( String const &  key) const -> Data const &

Return a required to exist child Data object with given key, presuming this Data object is a dictionary.

This method throws an error if this Data object is not a dictionary or if the given key does not exist.


The documentation for this class was generated from the following file: