Struct ssbh_lib::SsbhArray [−][src]
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
Trait Implementations
impl<C: Copy + 'static, T: BinRead<Args = C>> BinRead for SsbhArray<T>
[src]
impl<C: Copy + 'static, T: BinRead<Args = C>> BinRead for SsbhArray<T>
[src]type Args = C
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]
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]
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]
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]
&mut self,
&mut R,
&ReadOptions,
Self::Args
) -> Result<(), Error> where
R: Read + Seek,
impl<'de, T: BinRead + Deserialize<'de>> Deserialize<'de> for SsbhArray<T>
[src]
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]
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 + SsbhWrite + Sized> SsbhWrite for SsbhArray<T>
[src]
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]
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]
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]
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,
T: RefUnwindSafe,
impl<T> Send for SsbhArray<T> where
T: Send,
T: Send,
impl<T> Sync for SsbhArray<T> where
T: Sync,
T: Sync,
impl<T> Unpin for SsbhArray<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for SsbhArray<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,