JSON Voorhees
Killer JSON for C++
|
A collection of algorithms a la <algorithm>
.
More...
#include <jsonv/config.hpp>
#include <jsonv/value.hpp>
#include <jsonv/path.hpp>
#include <cmath>
#include <functional>
#include <limits>
Go to the source code of this file.
Classes | |
struct | jsonv::compare_traits |
Traits describing how to perform various aspects of comparison. More... | |
struct | jsonv::diff_result |
The results of the diff operation. More... | |
class | jsonv::merge_rules |
This class is used in merge_explicit for defining what the function should do in the cases of conflicts. More... | |
class | jsonv::dynamic_merge_rules |
An implementation of merge_rules that allows you to bind whatever functions you want to resolve conflicts. More... | |
class | jsonv::throwing_merge_rules |
These rules throw an exception on all conflicts. More... | |
class | jsonv::recursive_merge_rules |
These rules will recursively merge everything they can and coerce all values. More... | |
class | jsonv::validation_error |
Error thrown when an unrepresentable value is encountered in a JSON AST. More... | |
Functions | |
template<typename TCompareTraits > | |
int | jsonv::compare (const value &a, const value &b, const TCompareTraits &traits) |
Compare the values a and b using the comparison traits. More... | |
JSONV_PUBLIC int | jsonv::compare (const value &a, const value &b) |
Compare the values a and b with strict comparison traits. More... | |
JSONV_PUBLIC int | jsonv::compare_icase (const value &a, const value &b) |
Compare the values a and b, but use case-insensitive matching on kind::string values. More... | |
JSONV_PUBLIC diff_result | jsonv::diff (value left, value right) |
Find the differences and similarities between the structures of left and right. More... | |
JSONV_PUBLIC value | jsonv::map (const std::function< value(const value &)> &func, const value &input) |
Run a function over the values in the input. More... | |
JSONV_PUBLIC value | jsonv::map (const std::function< value(value)> &func, value &&input) |
Run a function over the values in the input. More... | |
JSONV_PUBLIC void | jsonv::traverse (const value &tree, const std::function< void(const path &, const value &)> &func, const path &base_path, bool leafs_only=false) |
Recursively walk the provided tree and call func for each item in the tree. More... | |
JSONV_PUBLIC void | jsonv::traverse (const value &tree, const std::function< void(const path &, const value &)> &func, bool leafs_only=false) |
Recursively walk the provided tree and call func for each item in the tree. More... | |
JSONV_PUBLIC value | jsonv::merge_explicit (const merge_rules &rules, path current_path, value a, value b) |
Merges two values , a and b into a single value . More... | |
JSONV_PUBLIC value | jsonv::merge_explicit (const merge_rules &, const path &, value a) |
JSONV_PUBLIC value | jsonv::merge_explicit (const merge_rules &, const path &) |
template<typename... TValue> | |
value | jsonv::merge_explicit (const merge_rules &rules, path current_path, value a, value b, value c, TValue &&...rest) |
template<typename... TValue> | |
value | jsonv::merge (TValue &&...values) |
Merges all the provided values into a single value . More... | |
template<typename... TValue> | |
value | jsonv::merge_recursive (TValue &&...values) |
Merges all the provided values into a single value . More... | |
JSONV_PUBLIC std::ostream & | jsonv::operator<< (std::ostream &os, const validation_error::code &code) |
JSONV_PUBLIC void | jsonv::validate (const value &val) |
Check that the provided val is perfectly representable as a JSON string. More... | |
A collection of algorithms a la <algorithm>
.
Copyright (c) 2014-2018 by Travis Gockel. All rights reserved.
This program is free software: you can redistribute it and/or modify it under the terms of the Apache License as published by the Apache Software Foundation, either version 2 of the License, or (at your option) any later version.
Definition in file algorithm.hpp.