Skip to main content

IncrementalParser

Struct IncrementalParser 

Source
pub struct IncrementalParser<R: Read + Seek, S: ParseState> { /* private fields */ }
Expand description

An incremental parser for braid archives.

Initially, minimal reading from the archive is performed. As further operations on the archive proceed, the state of the parser gradually accumulates more information.

Implementations§

Source§

impl IncrementalParser<BufReader<File>, ArchiveOpened>

Source

pub fn open<P: AsRef<Path>>(path: P) -> Result<Self, Error>

Open an archive from a path.

The archive may be a .braidz zip file for a .braid directory.

Source

pub fn open_dir<P: AsRef<Path>>(path: P) -> Result<Self, Error>

Open an archive from a directory.

The archive must be a .braid directory.

Source

pub fn open_braidz_file<P: AsRef<Path>>(path: P) -> Result<Self, Error>

Open an archive from a .braidz zip file.

The archive must be a .braidz zip file.

Source§

impl<R: Read + Seek> IncrementalParser<R, ArchiveOpened>

Source

pub fn from_archive(archive: ZipDirArchive<R>) -> Self

Open an archive.

The archive may be a .braidz zip file for a .braid directory.

Source

pub fn parse_basics( self, ) -> Result<IncrementalParser<R, BasicInfoParsed>, Error>

Parse the basic data which can be quickly read from the archive.

Source

pub fn parse_everything( self, ) -> Result<IncrementalParser<R, FullyParsed>, Error>

Parse the entire archive.

Source§

impl<R: Read + Seek> IncrementalParser<R, BasicInfoParsed>

Source

pub fn parse_rest(self) -> Result<IncrementalParser<R, FullyParsed>, Error>

Parse the remaining aspects of the archive.

Source

pub fn basic_info(&self) -> &BasicInfoParsed

Source§

impl<R: Read + Seek> IncrementalParser<R, FullyParsed>

Source§

impl<R: Read + Seek, S: ParseState> IncrementalParser<R, S>

Source

pub fn into_inner(self) -> ZipDirArchive<R>

Consume and return the raw storage archive.

Source

pub fn display(&self) -> Display<'_>

Display the path of the archive.

Source

pub fn path_starter(&mut self) -> PathLike<'_, R>

Get a path-like instance for direct read access to the archive.

You should prefer to use information already parsed from the archive rather than resorting to this low-level function. Consider expanding the parser to provide this information if it is not already implemented.

Trait Implementations§

Source§

impl<R: Read + Seek, S: ParseState> Debug for IncrementalParser<R, S>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<R, S> Freeze for IncrementalParser<R, S>
where S: Freeze, R: Freeze,

§

impl<R, S> RefUnwindSafe for IncrementalParser<R, S>

§

impl<R, S> Send for IncrementalParser<R, S>
where S: Send, R: Send,

§

impl<R, S> Sync for IncrementalParser<R, S>
where S: Sync, R: Sync,

§

impl<R, S> Unpin for IncrementalParser<R, S>
where S: Unpin, R: Unpin,

§

impl<R, S> UnsafeUnpin for IncrementalParser<R, S>
where S: UnsafeUnpin, R: UnsafeUnpin,

§

impl<R, S> UnwindSafe for IncrementalParser<R, S>
where S: UnwindSafe, R: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,