InlineableDeserializerExt

This commit is contained in:
AF 2023-06-28 16:03:34 +00:00
parent fb4bcd6c9e
commit a05dcb7ff8

View File

@ -17,8 +17,10 @@ pub trait InlineableDeserializer: Sized {
ok: impl FnOnce(&[u8]) -> A, ok: impl FnOnce(&[u8]) -> A,
err: impl FnOnce(&[u8]) -> E, err: impl FnOnce(&[u8]) -> E,
) -> Result<(A, Self), E>; ) -> Result<(A, Self), E>;
}
fn iread_n_const<const N: usize, E>( pub trait InlineableDeserializerExt<E>: InlineableDeserializer {
fn iread_n_const<const N: usize>(
self, self,
err: impl FnOnce(&[u8]) -> E, err: impl FnOnce(&[u8]) -> E,
) -> Result<([u8; N], Self), E> { ) -> Result<([u8; N], Self), E> {
@ -26,6 +28,8 @@ pub trait InlineableDeserializer: Sized {
} }
} }
impl<D: InlineableDeserializer, E> InlineableDeserializerExt<E> for D {}
impl<D: ?Sized + Deserializer> InlineableDeserializer for &mut D { impl<D: ?Sized + Deserializer> InlineableDeserializer for &mut D {
fn iread_n<A, E>( fn iread_n<A, E>(
self, self,