M2Vec

Struct M2Vec 

Source
pub struct M2Vec<T: M2Parse> {
    pub array: M2Array<T>,
    pub data: Vec<T>,
}
Expand description

Represents a vector of elements in the M2 file format, along with its array reference.

M2Vec stores both the M2Array reference (count and offset in the file) and the actual data elements. This is used for fields in M2 structs that point to arrays of data elsewhere in the file.

The data field is populated when parsing, but only the array field is written when serializing, as the actual data is written separately at the correct offset.

Fields§

§array: M2Array<T>

Reference to the array in the file (count and offset)

§data: Vec<T>

The actual data elements (populated when parsing)

Implementations§

Source§

impl<T: M2Parse> M2Vec<T>

Source

pub fn new() -> Self

Create a new, empty M2Vec with no data and a zeroed array reference.

Trait Implementations§

Source§

impl<T: Clone + M2Parse> Clone for M2Vec<T>

Source§

fn clone(&self) -> M2Vec<T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug + M2Parse> Debug for M2Vec<T>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<T: Default + M2Parse> Default for M2Vec<T>

Source§

fn default() -> M2Vec<T>

Returns the “default value” for a type. Read more
Source§

impl<T: M2Parse> M2Parse for M2Vec<T>

Source§

fn parse<R: Read + Seek>(reader: &mut R) -> Result<Self>

Parse an instance of the type from the given reader. Read more
Source§

fn write<W: Write>(&self, writer: &mut W) -> Result<()>

Write this instance to the given writer. Read more

Auto Trait Implementations§

§

impl<T> Freeze for M2Vec<T>

§

impl<T> RefUnwindSafe for M2Vec<T>
where T: RefUnwindSafe,

§

impl<T> Send for M2Vec<T>
where T: Send,

§

impl<T> Sync for M2Vec<T>
where T: Sync,

§

impl<T> Unpin for M2Vec<T>
where T: Unpin,

§

impl<T> UnwindSafe for M2Vec<T>
where T: 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.