4#ifndef _Stroika_Foundation_DataExchange_JSON_PATCH_h_
5#define _Stroika_Foundation_DataExchange_JSON_PATCH_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
10#include "Stroika/Foundation/Containers/Sequence.h"
11#include "Stroika/Foundation/DataExchange/JSON/Pointer.h"
12#include "Stroika/Foundation/DataExchange/ObjectVariantMapper.h"
16namespace Stroika::Foundation::DataExchange::JSON::Patch {
29 enum class OperationType {
38 struct OperationItemType {
41 optional<VariantValue> value;
48 nonvirtual VariantValue Apply (
const VariantValue& v)
const;
65 nonvirtual VariantValue
Apply (
const VariantValue& v)
const;
#define Stroika_Define_Enum_Bounds(FIRST_ITEM, LAST_ITEM)
String is like std::u32string, except it is much easier to use, often much more space efficient,...
A generalization of a vector: a container whose elements are keyed by the natural numbers.
ObjectVariantMapper can be used to map C++ types to and from variant-union types, which can be transp...
Simple variant-value (case variant union) object, with (variant) basic types analogous to a value in ...
nonvirtual void Apply(const function< void(ArgByValueType< T > item)> &doToElement, Execution::SequencePolicy seq=Execution::SequencePolicy::eDEFAULT) const
Run the argument function (or lambda) on each element of the container.
STRING_TYPE ToString(FLOAT_TYPE f, const ToStringOptions &options={})