Archive

Struct Archive 

Source
pub struct Archive<R: Read + Seek> { /* private fields */ }
Expand description

Implementation of a MoPaQ archive viewer.

Refer to top-level documentation to see which features are supported.

Will work on any reader that implements Read + Seek.

Implementations§

Source§

impl<R: Read + Seek> Archive<R>

Source

pub fn open(reader: R) -> Result<Archive<R>, MpqError>

Try to open an MPQ archive from the specified reader.

Immediately, this will perform the following:

  1. Locate an MPQ header.
  2. Locate and read the Hash Table.
  3. Locate and read the Block Table.

If any of these steps fail, the archive is deemed corrupted and an appropriate error is returned.

No other operations will be performed.

Source

pub fn read_file(&mut self, name: &str) -> Result<Vec<u8>, MpqError>

Read a file’s contents.

Notably, the filename resolution algorithm is case, and will treat backslashes (\) and forward slashes (/) as different characters.

Does not support single-unit files or uncompressed files.

Source

pub fn files(&mut self) -> Option<Vec<String>>

If the archive contains a (listfile), this will method parse it and return a Vec containing all known filenames.

Source

pub fn start(&self) -> u64

Source

pub fn end(&self) -> u64

Source

pub fn size(&self) -> u64

Source

pub fn reader(&mut self) -> &mut R

Trait Implementations§

Source§

impl<R: Debug + Read + Seek> Debug for Archive<R>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<R> Freeze for Archive<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for Archive<R>
where R: RefUnwindSafe,

§

impl<R> Send for Archive<R>
where R: Send,

§

impl<R> Sync for Archive<R>
where R: Sync,

§

impl<R> Unpin for Archive<R>
where R: Unpin,

§

impl<R> UnwindSafe for Archive<R>
where 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.