diff options
| author | zirkonya <zirkonya@iridium.lan> | 2026-08-30 17:12:05 +0200 |
|---|---|---|
| committer | zirkonya <zirkonya@iridium.lan> | 2026-08-30 17:12:05 +0200 |
| commit | fdc02f07cbd1994c1efb057f24a37a96faaa51fa (patch) | |
| tree | 04f8c552525f77fa1566d68e5e5c0684721b8f65 /src/codec/encode.rs | |
| parent | bee8c7face90079e57ce907a850b4b45ee025993 (diff) | |
add encode/decode implementation
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); |
