diff --git a/src/any.rs b/src/any.rs index 49d27483..cb60384e 100644 --- a/src/any.rs +++ b/src/any.rs @@ -142,7 +142,7 @@ pub enum Union { Float(FLOAT), Array(Box), Map(Box), - Variant(Box), + Variant(Box>), } impl Dynamic { @@ -172,7 +172,7 @@ impl Dynamic { Union::Float(_) => TypeId::of::(), Union::Array(_) => TypeId::of::(), Union::Map(_) => TypeId::of::(), - Union::Variant(value) => (**value).type_id(), + Union::Variant(value) => (***value).type_id(), } } @@ -191,7 +191,7 @@ impl Dynamic { #[cfg(not(feature = "no_std"))] Union::Variant(value) if value.is::() => "timestamp", - Union::Variant(value) => (**value).type_name(), + Union::Variant(value) => (***value).type_name(), } } } @@ -242,7 +242,7 @@ impl Clone for Dynamic { Union::Float(value) => Self(Union::Float(value.clone())), Union::Array(value) => Self(Union::Array(value.clone())), Union::Map(value) => Self(Union::Map(value.clone())), - Union::Variant(value) => (**value).clone_into_dynamic(), + Union::Variant(value) => (***value).clone_into_dynamic(), } } } @@ -336,7 +336,7 @@ impl Dynamic { .map(Box::new) .map(Union::Map) .or_else(|var| -> Result { - Ok(Union::Variant(var as Box)) + Ok(Union::Variant(Box::new(var as Box))) }) }) }) @@ -380,7 +380,7 @@ impl Dynamic { Union::Map(value) => (value.as_ref() as &dyn Variant) .downcast_ref::() .cloned(), - Union::Variant(value) => value.as_ref().downcast_ref::().cloned(), + Union::Variant(value) => value.as_ref().as_ref().downcast_ref::().cloned(), } } @@ -422,7 +422,7 @@ impl Dynamic { Union::Float(value) => (value as &dyn Variant).downcast_ref::(), Union::Array(value) => (value.as_ref() as &dyn Variant).downcast_ref::(), Union::Map(value) => (value.as_ref() as &dyn Variant).downcast_ref::(), - Union::Variant(value) => value.as_ref().downcast_ref::(), + Union::Variant(value) => value.as_ref().as_ref().downcast_ref::(), } } @@ -444,7 +444,7 @@ impl Dynamic { Union::Float(value) => (value as &mut dyn Variant).downcast_mut::(), Union::Array(value) => (value.as_mut() as &mut dyn Variant).downcast_mut::(), Union::Map(value) => (value.as_mut() as &mut dyn Variant).downcast_mut::(), - Union::Variant(value) => value.as_mut().downcast_mut::(), + Union::Variant(value) => value.as_mut().as_mut().downcast_mut::(), } }