Struct ssbh_lib::SsbhArray[][src]

pub struct SsbhArray<T: BinRead> {
    pub elements: Vec<T>,
}
Expand description

A fixed-size collection of contiguous elements consisting of a relative offset to the array elements and an element count.

use binread::BinRead;
use ssbh_lib::{SsbhArray, Matrix4x4};
use ssbh_lib::SsbhWrite;
use ssbh_write_derive::SsbhWrite;

#[derive(BinRead, SsbhWrite)]
struct Transforms {
    array_relative_offset: u64,
    array_item_count: u64
}

This can instead be expressed as the following struct with an explicit array item type. The generated parsing and exporting code will correctly read and write the array data from the appropriate offset.

use binread::BinRead;
use ssbh_lib::{SsbhArray, Matrix4x4, SsbhWrite};
use ssbh_write_derive::SsbhWrite;

#[derive(BinRead, SsbhWrite)]
struct Transforms {
    data: SsbhArray<Matrix4x4>,
}

Fields

elements: Vec<T>

Implementations

impl<T: BinRead> SsbhArray<T>[src]

pub fn new(elements: Vec<T>) -> Self[src]

Trait Implementations

impl<C: Copy + 'static, T: BinRead<Args = C>> BinRead for SsbhArray<T>[src]

type Args = C

The type of arguments needed to be supplied in order to read this type, usually a tuple. Read more

fn read_options<R: Read + Seek>(
    reader: &mut R,
    options: &ReadOptions,
    args: C
) -> BinResult<Self>
[src]

Read the type from the reader

fn read<R>(reader: &mut R) -> Result<Self, Error> where
    R: Read + Seek
[src]

Read the type from the reader while assuming no arguments have been passed Read more

fn read_args<R>(reader: &mut R, args: Self::Args) -> Result<Self, Error> where
    R: Read + Seek
[src]

Read the type from the reader using the specified arguments

fn after_parse<R>(
    &mut self,
    &mut R,
    &ReadOptions,
    Self::Args
) -> Result<(), Error> where
    R: Read + Seek
[src]

fn args_default() -> Option<Self::Args>[src]

The default arguments to be used when using the read shortcut method. Override this for any type that optionally requries arguments Read more

impl<T: Debug + BinRead> Debug for SsbhArray<T>[src]

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

Formats the value using the given formatter. Read more

impl<'de, T: BinRead + Deserialize<'de>> Deserialize<'de> for SsbhArray<T>[src]

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
    D: Deserializer<'de>, 
[src]

Deserialize this value from the given Serde deserializer. Read more

impl<T: BinRead> From<Vec<T, Global>> for SsbhArray<T>[src]

fn from(v: Vec<T>) -> Self[src]

Performs the conversion.

impl<T> Serialize for SsbhArray<T> where
    T: BinRead + Serialize
[src]

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where
    S: Serializer
[src]

Serialize this value into the given Serde serializer. Read more

impl<T: BinRead + SsbhWrite + Sized> SsbhWrite for SsbhArray<T>[src]

fn write_ssbh<W: Write + Seek>(
    &self,
    writer: &mut W,
    data_ptr: &mut u64
) -> Result<()>
[src]

Writes the byte representation of self to writer and update data_ptr as needed to ensure the next relative offset is correctly calculated.

fn size_in_bytes(&self) -> u64[src]

The offset in bytes between successive elements in an array of this type. This should include any alignment or padding. For most types, this is simply the value of std::mem::size_of. Read more

fn alignment_in_bytes(&self) -> u64[src]

The alignment of the relative_offset for types stored in a RelPtr64.

Auto Trait Implementations

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

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

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

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

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

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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.

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

Performs the conversion.

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.

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

Performs the conversion.

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]