1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
use std::ops::Not; use crate::Value; impl Not for Value<'_> { type Output = bool; fn not(self) -> Self::Output { match self.inner.as_ref() { serde_json::Value::Bool(b) => { !*b } _ => { true } } } } impl Not for &Value<'_> { type Output = bool; fn not(self) -> Self::Output { match self.inner.as_ref() { serde_json::Value::Bool(b) => { !*b } _ => { true } } } } impl Not for &mut Value<'_> { type Output = bool; fn not(self) -> Self::Output { match self.inner.as_ref() { serde_json::Value::Bool(b) => { !*b } _ => { true } } } }