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; }