serde: Add From implementations for CanonicalJsonValue

This commit is contained in:
Jonas Platte 2021-05-08 14:03:01 +02:00
parent 71686ce8a4
commit c01e8340eb
No known key found for this signature in database
GPG Key ID: 7D261D771D915378

View File

@ -244,8 +244,14 @@ impl From<CanonicalJsonValue> for JsonValue {
} }
} }
macro_rules! impl_partial_eq { macro_rules! variant_impls {
($variant:ident($ty:ty)) => { ($variant:ident($ty:ty)) => {
impl From<$ty> for CanonicalJsonValue {
fn from(val: $ty) -> Self {
Self::$variant(val)
}
}
impl PartialEq<$ty> for CanonicalJsonValue { impl PartialEq<$ty> for CanonicalJsonValue {
fn eq(&self, other: &$ty) -> bool { fn eq(&self, other: &$ty) -> bool {
match self { match self {
@ -266,11 +272,11 @@ macro_rules! impl_partial_eq {
}; };
} }
impl_partial_eq!(Bool(bool)); variant_impls!(Bool(bool));
impl_partial_eq!(Integer(Int)); variant_impls!(Integer(Int));
impl_partial_eq!(String(String)); variant_impls!(String(String));
impl_partial_eq!(Array(Vec<CanonicalJsonValue>)); variant_impls!(Array(Vec<CanonicalJsonValue>));
impl_partial_eq!(Object(Object)); variant_impls!(Object(Object));
impl Serialize for CanonicalJsonValue { impl Serialize for CanonicalJsonValue {
#[inline] #[inline]