| 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 diffoperation.  More... | |
| class | jsonv::merge_rules | 
| This class is used in merge_explicitfor defining what the function should do in the cases of conflicts.  More... | |
| class | jsonv::dynamic_merge_rules | 
| An implementation of merge_rulesthat 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::stringvalues.  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 singlevalue.  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.