[][src]Enum mla::ArchiveFileBlock

pub enum ArchiveFileBlock<T: Read> {
    FileStart {
        filename: String,
        id: ArchiveFileID,
    },
    FileContent {
        length: u64,
        data: Option<T>,
        id: ArchiveFileID,
    },
    EndOfFile {
        id: ArchiveFileID,
        hash: [u8; 32],
    },
    EndOfArchiveData,
}

Variants

FileStart

Usually, a file is made of: [FileStart][FileContent]...[FileContent][EndOfFile] The id is used to keep track internally of which file a ArchiveFileBlock belongs to

Start of a file

Fields of FileStart

filename: Stringid: ArchiveFileID
FileContent

File content. (length, data) is used instead of a Vec to avoid having the whole data in memory. On parsing, the data can be set to None. It indicates to the caller that the data is just next to it TODO: use the same trick than ArchiveReader to avoid the Option

Fields of FileContent

length: u64data: Option<T>id: ArchiveFileID
EndOfFile

End of file (last block) - contains the SHA256 of the whole file

Fields of EndOfFile

id: ArchiveFileIDhash: [u8; 32]
EndOfArchiveData

End of archive data (no more files after that)

Trait Implementations

impl<T: Debug + Read> Debug for ArchiveFileBlock<T>[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for ArchiveFileBlock<T> where
    T: RefUnwindSafe

impl<T> Send for ArchiveFileBlock<T> where
    T: Send

impl<T> Sync for ArchiveFileBlock<T> where
    T: Sync

impl<T> Unpin for ArchiveFileBlock<T> where
    T: Unpin

impl<T> UnwindSafe for ArchiveFileBlock<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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