16 #ifndef INCLUDE_NN_NLIB_MSGPACK_JSONPATCH_H_ 17 #define INCLUDE_NN_NLIB_MSGPACK_JSONPATCH_H_ 22 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS) 23 #undef NLIB_VIS_PUBLIC 24 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT 34 #ifdef __cpp_rvalue_references 35 #ifdef NLIB_CXX11_DEFAULTED_AND_DELETED_FUNCTIONS 41 oplist_ = std::move(rhs.oplist_);
47 : oplist_(rhs.oplist_,
move_tag()) {}
49 oplist_.assign(rhs.oplist_,
move_tag());
53 return PathValueOp(
"add", path, value);
57 return PathValueOp(
"replace", path, value);
61 return PathFromOp(
"move", path, from);
65 return PathFromOp(
"copy", path, from);
68 return PathValueOp(
"test", path, value);
71 #ifdef __cpp_rvalue_references 72 std::pair<errno_t, MpObject> Export() NLIB_NOEXCEPT {
73 std::pair<errno_t, MpObject> rval;
74 rval.first = Export(&rval.second);
80 swap(oplist_, rhs.oplist_);
105 NLIB_DEFINE_STD_SWAP(::nlib_ns::msgpack::JsonPatchBuilder)
106 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS) 107 #undef NLIB_VIS_PUBLIC 108 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT 111 #endif // INCLUDE_NN_NLIB_MSGPACK_JSONPATCH_H_
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
JSON Patch (RFC-6902)を適用するためのクラスです。
MessagePack又はJSONを読み込むことで作成されるオブジェクトです。
errno_t Copy(const nlib_utf8_t *path, const nlib_utf8_t *from) noexcept
JSON Patch文書となる配列に"copy"演算を追加します。
errno_t Test(const nlib_utf8_t *path, MpObject *value) noexcept
JSON Patch文書となる配列に"test"演算を追加します。
空の構造体で、関数の引数をムーブすべきことを示すために利用されます。
MessagePack, JSON及びCSVを読み込むと作成されるオブジェクトです。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
errno_t Add(const nlib_utf8_t *path, MpObject *value) noexcept
JSON Patch文書となる配列に"add"演算を追加します。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
errno_t Move(const nlib_utf8_t *path, const nlib_utf8_t *from) noexcept
JSON Patch文書となる配列に"move"演算を追加します。
JSON Patch (RFC-6902)を作成するためのクラスです。