Definition at line 34 of file json_patch.h.
Definition at line 38 of file json_patch.cpp.
References add, copy, folly::json_patch::patch_operation::from, invalid, invalid_shape, folly::makeUnexpected(), malformed_from_attr, malformed_op, malformed_path_attr, missing_from_attr, missing_op, missing_path_attr, missing_value_attr, move, folly::gen::move, folly::json_patch::patch_operation::op_code, ops_, overlapping_pointers, folly::json_patch::patch_operation::path, remove, replace, test, folly::json_pointer::try_parse(), unknown_op, and folly::json_patch::patch_operation::value.
46 for (
auto const& elem : obj) {
47 if (!elem.isObject()) {
50 auto const* op_ptr = elem.get_ptr(kOpTag);
54 if (!op_ptr->isString()) {
57 auto const op_str = op_ptr->asString();
62 auto const* from_ptr = elem.get_ptr(kFromTag);
64 if (!from_ptr->isString()) {
68 if (!json_ptr.hasValue()) {
72 op.from = json_ptr.value();
78 auto const* path_ptr = elem.get_ptr(kPathTag);
82 if (!path_ptr->isString()) {
87 if (!json_ptr.hasValue()) {
91 op.path = json_ptr.value();
96 auto const* val_ptr = elem.get_ptr(kValueTag);
108 if (op_str == kOperationTest) {
113 }
else if (op_str == kOperationRemove) {
115 }
else if (op_str == kOperationAdd) {
120 }
else if (op_str == kOperationReplace) {
125 }
else if (op_str == kOperationMove) {
130 if (op.from->is_prefix_of(op.path)) {
135 }
else if (op_str == kOperationCopy) {
static Expected< json_pointer, parse_error > try_parse(StringPiece const str)
constexpr detail::Map< Move > move
constexpr Unexpected< typename std::decay< Error >::type > makeUnexpected(Error &&)