diff --git a/src/atomic/inlining.rs b/src/atomic/inlining.rs index 3d4b556..38a1867 100644 --- a/src/atomic/inlining.rs +++ b/src/atomic/inlining.rs @@ -1,20 +1,27 @@ pub use super::*; +/// Inlining version of [`AParseResult`]. Preserves the parser. pub type AIParseResult = Result<(A, I), AParseError>; +/// For auto-deriving [`InliningAtomic`] from concrete implementations. pub trait CInliningAtomic: AtomicBase + ImplMode { + /// Concrete implementation of [`InliningAtomic::a_extension_error`]. fn ca_extension_error(tail: &[u8]) -> Self::AParseError; + /// Concrete implementation of [`InliningAtomic::a_ideserialize`]. fn ca_ideserialize(stream: I) -> AIParseResult; } -/// Atomic analogue of [`InliningFactory`]/[`InliningObject`]. +/// [`Atomic`] analogue of [`InliningFactory`]/[`InliningObject`]. /// /// [`InliningFactory`]: crate::rcore::InliningFactory /// [`InliningObject`]: crate::rstd::inlining::InliningObject pub trait InliningAtomic: AtomicBase + ParseMode { + /// Always fail on extension, + /// as parsing of an inlining atomic should be determined without reaching EOF. fn a_extension_error(tail: &[u8]) -> Self::AParseError; + /// Inlining version of [`Atomic::a_deserialize`]. Preserves the parser. fn a_ideserialize(strean: I) -> AIParseResult; }