Common utilities for all the formats. More...
Classes | |
| class | ItemsWrapper |
| Wrapper for handy python-like iteration over a map. More... | |
| class | Path |
| class | TransferTag |
This tag class is used to move a ValueBuilder object without copying. More... | |
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. | |
| 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. | |
| 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 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. | |
Variables | |
| template<class Value > | |
| constexpr bool | kIsFormatValue |
| constexpr char | kPathSeparator = '.' |
| constexpr char | kPathRoot [] = "/" |
| constexpr char | kPathPrefixSeparator [] = ":/" |
Common utilities for all the formats.
|
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 | ) |
| void formats::common::Merge | ( | typename Value::Builder & | original, |
| const Value & | patch | ||
| ) |
| 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
|
inlineconstexpr |
Used in Parse overloads that are templated on Value, avoids clashing with Parse from string
|
inlineconstexpr |
|
inlineconstexpr |