/home/runner/work/feoxdb/feoxdb/src/utils/json_patch.rs
Line | Count | Source |
1 | | use crate::error::{FeoxError, Result}; |
2 | | use json_patch::Patch; |
3 | | use serde_json::Value; |
4 | | |
5 | 14 | pub fn apply_json_patch(document: &[u8], patch: &[u8]) -> Result<Vec<u8>> { |
6 | 14 | let mut doc12 : Value12 = serde_json::from_slice(document) |
7 | 14 | .map_err(|e| FeoxError::JsonPatchError(format!2 ("Invalid JSON document: {}"2 , e)))?2 ; |
8 | | |
9 | 12 | let patch11 : Patch11 = serde_json::from_slice(patch) |
10 | 12 | .map_err(|e| FeoxError::JsonPatchError(format!1 ("Invalid patch: {}"1 , e)))?1 ; |
11 | | |
12 | 11 | json_patch::patch(&mut doc, &patch) |
13 | 11 | .map_err(|e| FeoxError::JsonPatchError(format!2 ("Patch failed: {}"2 , e)))?2 ; |
14 | | |
15 | 9 | serde_json::to_vec(&doc) |
16 | 9 | .map_err(|e| FeoxError::JsonPatchError(format!0 ("Serialization failed: {}"0 , e))) |
17 | 14 | } |