Common utilities for all the formats.
Classes | |
| class | ConversionStack |
| Used in the implementation of functions that convert between different formats, e.g. formats::yaml::Value to formats::json::Value, etc. More... | |
| class | ItemsWrapper |
| Wrapper for handy python-like iteration over a map. More... | |
| struct | ItemsWrapperValue |
| class | Path |
| class | TransferTag |
This tag class is used to move a ValueBuilder object without copying. More... | |
Typedefs | |
| template<typename Value, typename T> | |
| using | ParseType = decltype(Parse(std::declval<Value>(), parse::To<T>())) |
Enumerations | |
| enum class | IteratorDirection { kForward = 1 , kReverse = -1 } |
| Helper to distinguish forward and reverse iterators for Value. More... | |
| enum class | Type { kNull , kArray , kObject } |
| Common enum of types. More... | |
Functions | |
| template<typename Value> | |
| ItemsWrapper< Value > | Items (Value &&value) |
| Wrapper for handy python-like iteration over a map. | |
| std::string | GetIndexString (size_t index) |
| Returns string of [idx], e.g. "[0]" or "[1025]". | |
| void | AppendPath (std::string &path, std::string_view key) |
| void | AppendPath (std::string &path, std::size_t index) |
| std::string | MakeChildPath (std::string_view parent, std::string_view key) |
| std::string | MakeChildPath (std::string &&parent, std::string_view key) |
| std::string | MakeChildPath (std::string_view parent, std::size_t index) |
| std::string | MakeChildPath (std::string &&parent, std::size_t index) |
| template<typename ValueTo, typename ValueFrom> | |
| ValueTo | PerformMinimalFormatConversion (ValueFrom &&value) |
| Performs the conversion between different formats. Only supports basic formats node types, throws on any non-standard ones. | |
| template<typename Value> | |
| void | Merge (typename Value::Builder &original, const Value &patch) |
Add to original new non-object elements from patch (overwriting the old ones, if any) and merge object elements recursively. | |
| template<typename Value> | |
| std::enable_if_t< common::kIsFormatValue< Value >, Value > | GetAtPath (Value parent, const std::vector< std::string > &path) |
Get the Value at path in parent. | |
| template<typename ValueBuilder> | |
| std::enable_if_t<!common::kIsFormatValue< ValueBuilder >, ValueBuilder > | GetAtPath (ValueBuilder &parent, std::vector< std::string > &&path) |
Get the ValueBuilder at path in parent. | |
| template<typename Value> | |
| void | SetAtPath (typename Value::Builder &parent, std::vector< std::string > &&path, Value new_value) |
Set the new_value along the path in the parent. | |
| template<typename ValueBuilder> | |
| void | RemoveAtPath (ValueBuilder &parent, std::vector< std::string > &&path) |
Remove the element along the path in the parent. | |
| std::vector< std::string > | SplitPathString (std::string_view path) |
Split path to vector<std::string> by dots. | |
| template<typename ExceptionType, typename Float> | |
| Float | ValidateFloat (Float value) |
| Common restrictions to floating type values serialization. Asserts or throws on NaN and Inf values. | |
Variables | |
| template<class Value> | |
| constexpr bool | kIsFormatValue = meta::IsDetected<impl::IsFormatValue, Value> |
| constexpr char | kPathSeparator = '.' |
| constexpr char | kPathRoot [] = "/" |
| constexpr char | kPathPrefixSeparator [] = ":/" |
| using formats::common::ParseType = decltype(Parse(std::declval<Value>(), parse::To<T>())) |
|
strong |
Helper to distinguish forward and reverse iterators for Value.
Definition at line 8 of file iterator_direction.hpp.
|
strong |
| std::enable_if_t< common::kIsFormatValue< Value >, Value > formats::common::GetAtPath | ( | Value | parent, |
| const std::vector< std::string > & | path ) |
| std::enable_if_t<!common::kIsFormatValue< ValueBuilder >, ValueBuilder > formats::common::GetAtPath | ( | ValueBuilder & | parent, |
| std::vector< std::string > && | path ) |
| ItemsWrapper< Value > formats::common::Items | ( | Value && | value | ) |
Wrapper for handy python-like iteration over a map.
To move out values:
| void formats::common::Merge | ( | typename Value::Builder & | original, |
| const Value & | patch ) |
| ValueTo formats::common::PerformMinimalFormatConversion | ( | ValueFrom && | value | ) |
Performs the conversion between different formats. Only supports basic formats node types, throws on any non-standard ones.
value.As<AnotherFormat>() or value.ConvertTo<AnotherFormat>(). Definition at line 157 of file conversion_stack.hpp.
| void formats::common::RemoveAtPath | ( | ValueBuilder & | parent, |
| std::vector< std::string > && | path ) |
| void formats::common::SetAtPath | ( | typename Value::Builder & | parent, |
| std::vector< std::string > && | path, | ||
| Value | new_value ) |
| std::vector< std::string > formats::common::SplitPathString | ( | std::string_view | path | ) |
Split path to vector<std::string> by dots.
path has a double dot or a dot at the beginning or end, the result will contain an empty string. vector if path is empty | Float formats::common::ValidateFloat | ( | Float | value | ) |
Common restrictions to floating type values serialization. Asserts or throws on NaN and Inf values.
Definition at line 17 of file validations.hpp.
|
inlineconstexpr |
|
inlineconstexpr |