diff options
Diffstat (limited to 'src/codec/encode.rs')
| -rw-r--r-- | src/codec/encode.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/codec/encode.rs b/src/codec/encode.rs index ae5eb4e..7463995 100644 --- a/src/codec/encode.rs +++ b/src/codec/encode.rs @@ -269,6 +269,28 @@ impl<Data> Encode<Data> for bool { } } +// ~ Encode pointer + +impl<Data, T> Encode<Data> for std::sync::Arc<T> +where + T: Encode<Data>, +{ + fn encode(&self, buffer: &mut dyn Write, ctx: &Context<Data>) -> Result<usize> { + let data = self.as_ref(); + data.encode(buffer, ctx) + } +} + +impl<Data, T> Encode<Data> for std::sync::Arc<[T]> +where + T: Encode<Data>, +{ + fn encode(&self, buffer: &mut dyn Write, ctx: &Context<Data>) -> Result<usize> { + let data = self.as_ref(); + data.encode(buffer, ctx) + } +} + impl_encode!(u8); impl_encode!(u16); impl_encode!(u32); |
