diff --git a/src/boc/serde.rs b/src/boc/serde.rs index 9fffb19e..0df5f507 100644 --- a/src/boc/serde.rs +++ b/src/boc/serde.rs @@ -48,7 +48,7 @@ impl From for SerdeBoc { } } -impl Serialize for SerdeBoc { +impl Serialize for SerdeBoc { fn serialize(&self, serializer: S) -> Result { self.0.serialize_as_boc(serializer) } @@ -83,7 +83,7 @@ impl SerializeAsBoc for DynCell { } } -impl SerializeAsBoc for &'_ T { +impl SerializeAsBoc for &'_ T { #[inline] fn serialize_as_boc(&self, serializer: S) -> Result { T::serialize_as_boc(self, serializer) @@ -97,21 +97,21 @@ impl SerializeAsBoc for Option { } } -impl SerializeAsBoc for Box { +impl SerializeAsBoc for Box { #[inline] fn serialize_as_boc(&self, serializer: S) -> Result { T::serialize_as_boc(self.as_ref(), serializer) } } -impl SerializeAsBoc for Rc { +impl SerializeAsBoc for Rc { #[inline] fn serialize_as_boc(&self, serializer: S) -> Result { T::serialize_as_boc(self.as_ref(), serializer) } } -impl SerializeAsBoc for Arc { +impl SerializeAsBoc for Arc { #[inline] fn serialize_as_boc(&self, serializer: S) -> Result { T::serialize_as_boc(self.as_ref(), serializer) @@ -395,3 +395,24 @@ where deserializer.deserialize_bytes(CowBytesVisitor) } + +#[cfg(test)] +mod tests { + use crate::cell::CellFamily; + + use super::*; + + #[derive(serde::Serialize)] + struct StructWithDynCell<'a> { + #[serde(with = "crate::boc::Boc")] + cell: &'a DynCell, + } + + #[test] + fn serde_dyn_cell_works() { + serde_json::to_string(&StructWithDynCell { + cell: Cell::empty_cell_ref(), + }) + .unwrap(); + } +}