docs for extension traits

This commit is contained in:
AF 2023-04-22 23:47:14 +00:00
parent 29d0eb3ee2
commit 5ae43e60b2
2 changed files with 7 additions and 0 deletions

View File

@ -425,7 +425,9 @@ impl Addresses {
} }
} }
/// Extension trait for [Deserializer]s.
pub trait ExtDeserializer { pub trait ExtDeserializer {
/// Try to read exactly `N` bytes.
fn read_n_const<const N: usize>(&mut self) -> Result<[u8; N], &[u8]>; fn read_n_const<const N: usize>(&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> { pub trait ExtFactory<'a, Ctx: 'a + Context>: Factory<'a, Ctx> {
/// Parse the object from a slice.
fn parse_slice( fn parse_slice(
&self, &self,
slice: &[u8], 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> { pub struct SliceDeserializer<'a> {
slice: &'a [u8], slice: &'a [u8],
pos: usize, pos: usize,

View File

@ -193,7 +193,9 @@ impl Display for Address {
} }
} }
/// Extension trait for [Serializable]s.
pub trait ExtSerializable: Serializable { pub trait ExtSerializable: Serializable {
/// Serialize into a [Vec] of bytes.
fn bytes(&self) -> Vec<u8>; fn bytes(&self) -> Vec<u8>;
} }