/* * Copyright (c) 2021 Alexadru Ardelean. * * This is free software; you can redistribute it and/or modify * it under the terms of the MIT license. See COPYING for details. * */ /** * @file * @brief JSON Patch (RFC 6902) implementation for manipulating JSON objects */ #ifndef _json_patch_h_ #define _json_patch_h_ #include "json_pointer.h" #ifdef __cplusplus extern "C" { #endif /** * Apply the JSON patch to the base object. * The patch object must be formatted as per RFC 6902. * If the patch is not correctly formatted, an error will * be returned. * * The original `base` object will first be copied, and then * the patch will be applied. * If anything fails during patching, the `res` object will be * NULL and the function will return a negative result. * * @param base the JSON object which to patch * @param patch the JSON object that describes the patch to be applied * @param the resulting patched JSON object * * @return negative if an error (or not found), or 0 if succeeded */ JSON_EXPORT int json_patch_apply(struct json_object *base, struct json_object *patch, struct json_object **res); #ifdef __cplusplus } #endif #endif