/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 | 19 | pub fn apply_json_patch(document: &[u8], patch: &[u8]) -> Result<Vec<u8>> { |
6 | 19 | let mut doc17 : Value17 = serde_json::from_slice(document) |
7 | 19 | .map_err(|e| FeoxError::JsonPatchError(format!2 ("Invalid JSON document: {}", e)))?2 ; |
8 | | |
9 | 17 | let patch16 : Patch16 = serde_json::from_slice(patch) |
10 | 17 | .map_err(|e| FeoxError::JsonPatchError(format!1 ("Invalid patch: {}", e)))?1 ; |
11 | | |
12 | 16 | json_patch::patch(&mut doc, &patch) |
13 | 16 | .map_err(|e| FeoxError::JsonPatchError(format!2 ("Patch failed: {}", e)))?2 ; |
14 | | |
15 | 14 | serde_json::to_vec(&doc) |
16 | 14 | .map_err(|e| FeoxError::JsonPatchError(format!0 ("Serialization failed: {}", e))) |
17 | 19 | } |