jsonptr/
delete.rs
1use serde_json::Value;
2
3use crate::{MalformedPointerError, Pointer};
4pub trait Delete {
7 type Error;
9 fn delete(&mut self, ptr: &Pointer) -> Option<Value>;
11}
12
13impl Delete for Value {
14 type Error = MalformedPointerError;
15 fn delete(&mut self, ptr: &Pointer) -> Option<Value> {
16 ptr.delete(self)
17 }
18}
19
20#[cfg(test)]
21mod tests {
22 use serde_json::json;
23
24 use super::*;
25
26 #[test]
27 fn test_issue_18() {
28 let mut data = json!(
29 {
30 "Example": 21,
31 "test": "test"
32 }
33 );
34 let pointer = Pointer::new(["Example"]);
35 println!("{}", pointer);
36 pointer.delete(&mut data);
37 assert_eq!(json!({"test": "test"}), data);
38 }
39}