Files
json-c/json_patch.h

47 lines
1.2 KiB
C
Raw Normal View History

/*
* 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