NetdocParseable

Trait NetdocParseable 

Source
pub trait NetdocParseable: Sized {
    // Required methods
    fn doctype_for_error() -> &'static str;
    fn is_intro_item_keyword(kw: KeywordRef<'_>) -> bool;
    fn from_items(
        input: &mut ItemStream<'_>,
        stop_at: StopAt<impl StopPredicate>,
    ) -> Result<Self, ErrorProblem>;
}
Available on crate feature parse2 only.
Expand description

A document or section that can be parsed

Normally derived.

Required Methods§

Source

fn doctype_for_error() -> &'static str

Document type for errors, normally its intro keyword

Source

fn is_intro_item_keyword(kw: KeywordRef<'_>) -> bool

Is Keyword an intro Item Keyword for this kind of document?

This is used with 1-keyword lookahead, to allow us to push or pop the parsing state into or out of a sub-document.

For signatures sections, this should report every recognised keyword.

Source

fn from_items( input: &mut ItemStream<'_>, stop_at: StopAt<impl StopPredicate>, ) -> Result<Self, ErrorProblem>

Parse the document from a stream of Items

Should stop before reading any keyword matching stop_at. (Except, right at the start.)

Should also stop before reading a 2nd intro keyword, so that successive calls to this function can parse successive sub-documents of this kind.

Otherwise, should continue until EOF.

Must check whether the first item is this document’s is_intro_item_keyword, and error if not.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl NetdocParseable for DirAuthKeyCert

Source§

impl NetdocParseable for DirAuthKeyCertSignatures

Source§

impl NetdocParseable for DirAuthKeyCertSigned

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::cons::NddAuthorityEntry

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::cons::NddAuthoritySection

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::cons::NddDirectoryFooter

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::cons::NetworkStatusSignatures

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::md::NddAuthorityEntry

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::md::NddAuthoritySection

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::md::NddDirectoryFooter

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::md::NetworkStatusSignatures

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::NetworkStatusMd

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::NetworkStatusNs

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::NetworkStatusSignedMd

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::NetworkStatusSignedNs

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::NetworkStatusSignedVote

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::NetworkStatusVote

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::RouterMd

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::RouterNs

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::RouterVote

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::vote::NddAuthorityEntry

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::vote::NddAuthoritySection

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::vote::NddDirectoryFooter

Source§

impl NetdocParseable for tor_netdoc::parse2::poc::netstatus::vote::NetworkStatusSignatures