From 5ae43e60b2179031f84dd9f45c3e86d85da4dceb Mon Sep 17 00:00:00 2001 From: timofey Date: Sat, 22 Apr 2023 23:47:14 +0000 Subject: [PATCH] docs for extension traits --- src/core.rs | 5 +++++ src/std.rs | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/core.rs b/src/core.rs index 76311ef..dc78c07 100644 --- a/src/core.rs +++ b/src/core.rs @@ -425,7 +425,9 @@ impl Addresses { } } +/// Extension trait for [Deserializer]s. pub trait ExtDeserializer { + /// Try to read exactly `N` bytes. fn read_n_const(&mut self) -> Result<[u8; N], &[u8]>; } @@ -488,7 +490,9 @@ fn _parse_slice<'a, Ctx: 'a + Context, A: Mentionable<'a, Ctx>>( } } +/// Extension trait for factories. pub trait ExtFactory<'a, Ctx: 'a + Context>: Factory<'a, Ctx> { + /// Parse the object from a slice. fn parse_slice( &self, slice: &[u8], @@ -506,6 +510,7 @@ impl<'a, Ctx: 'a + Context, F: Factory<'a, Ctx>> ExtFactory<'a, Ctx> for F { } } +/// [Deserializer] for slices. Used in [`ExtFactory::parse_slice`] and [`crate::std::atomic::ExtAtomic::parse_slice`]. pub struct SliceDeserializer<'a> { slice: &'a [u8], pos: usize, diff --git a/src/std.rs b/src/std.rs index fccc07b..c31ff22 100644 --- a/src/std.rs +++ b/src/std.rs @@ -193,7 +193,9 @@ impl Display for Address { } } +/// Extension trait for [Serializable]s. pub trait ExtSerializable: Serializable { + /// Serialize into a [Vec] of bytes. fn bytes(&self) -> Vec; }