diff --git a/deaf/all.html b/deaf/all.html index 3792843..fc16ecb 100644 --- a/deaf/all.html +++ b/deaf/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Definitions

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Definitions

Constants

\ No newline at end of file diff --git a/deaf/common/constants/enum.STVisibility.html b/deaf/common/constants/enum.STVisibility.html new file mode 100644 index 0000000..f571f80 --- /dev/null +++ b/deaf/common/constants/enum.STVisibility.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../../deaf/common/enum.STVisibility.html...

+ + + \ No newline at end of file diff --git a/deaf/common/enum.ByteDelimiter.html b/deaf/common/enum.ByteDelimiter.html index 4f2a84f..fb984d2 100644 --- a/deaf/common/enum.ByteDelimiter.html +++ b/deaf/common/enum.ByteDelimiter.html @@ -1,16 +1,16 @@ -ByteDelimiter in deaf::common - Rust
pub enum ByteDelimiter {
-    Value(u8),
-    Length(usize),
+ByteDelimiter in deaf::common - Rust
pub enum ByteDelimiter {
+    Value(u8),
+    Length(usize),
 }
Expand description

The delimiter used to determine the ending index of sub-slices returned by ByteIter.

-

Variants§

§

Value(u8)

§

Length(usize)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Variants§

§

Value(u8)

§

Length(usize)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/enum.Layout.html b/deaf/common/enum.Layout.html index 5252800..a50b282 100644 --- a/deaf/common/enum.Layout.html +++ b/deaf/common/enum.Layout.html @@ -1,4 +1,4 @@ -Layout in deaf::common - Rust

Enum deaf::common::Layout

source ·
#[repr(u8)]
pub enum Layout { +Layout in deaf::common - Rust

Enum deaf::common::Layout

source ·
#[repr(u8)]
pub enum Layout { Little, Big, }
Expand description

The endianness of the ELF file

@@ -6,20 +6,20 @@ passed to all of the other sections for parsing integers etc.

Variants§

§

Little

Little endian (e.g. 0xABCD is represented as ‘CD AB’)

§

Big

Big endian (e.g. 0xABCD is represented as ‘AB CD’ )

-

Trait Implementations§

source§

impl Clone for Layout

source§

fn clone(&self) -> Layout

Returns a copy 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 Convert<Layout> for u8

source§

impl Convert<u8> for Layout

source§

impl Debug for Layout

source§

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

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

impl Default for Layout

source§

fn default() -> Layout

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

impl From<Layout> for u8

source§

fn from(enum_value: Layout) -> Self

Converts to this type from the input type.
source§

impl PartialEq<Layout> for Layout

source§

fn eq(&self, other: &Layout) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<u8> for Layout

§

type Error = TryFromPrimitiveError<Layout>

The type returned in the event of a conversion error.
source§

fn try_from(number: u8) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
source§

impl TryFromPrimitive for Layout

Trait Implementations§

source§

impl Clone for Layout

source§

fn clone(&self) -> Layout

Returns a copy 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 Convert<Layout> for u8

source§

impl Convert<u8> for Layout

source§

impl Debug for Layout

source§

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

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

impl Default for Layout

source§

fn default() -> Layout

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

impl From<Layout> for u8

source§

fn from(enum_value: Layout) -> Self

Converts to this type from the input type.
source§

impl PartialEq<Layout> for Layout

source§

fn eq(&self, other: &Layout) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<u8> for Layout

§

type Error = TryFromPrimitiveError<Layout>

The type returned in the event of a conversion error.
source§

fn try_from(number: u8) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
source§

impl TryFromPrimitive for Layout

§

type Primitive = u8

source§

const NAME: &'static str = _

source§

fn try_from_primitive( number: Self::Primitive -) -> Result<Self, TryFromPrimitiveError<Self>>

source§

impl Copy for Layout

source§

impl StructuralPartialEq for Layout

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Self, TryFromPrimitiveError<Self>>
source§

impl Copy for Layout

source§

impl StructuralPartialEq for Layout

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/common/enum.PHType.html b/deaf/common/enum.PHType.html index 8e3c3e1..bf674bb 100644 --- a/deaf/common/enum.PHType.html +++ b/deaf/common/enum.PHType.html @@ -1,4 +1,4 @@ -PHType in deaf::common - Rust

Enum deaf::common::PHType

source ·
#[repr(u32)]
pub enum PHType { +PHType in deaf::common - Rust

Enum deaf::common::PHType

source ·
#[repr(u32)]
pub enum PHType {
Show 17 variants PT_NULL, PT_LOAD, PT_DYNAMIC, @@ -15,23 +15,23 @@ PT_HIOS, PT_LOPROC, PT_HIPROC, - Unknown(u32), + Unknown(u32),
}
Expand description

The type of a program header

This enum is generally parsed from the program headers (p_type).

-

Variants§

§

PT_NULL

§

PT_LOAD

§

PT_DYNAMIC

§

PT_INTERP

§

PT_NOTE

§

PT_SHLIB

§

PT_PHDR

§

PT_TLS

§

PT_LOOS

§

PT_GNU_EH_FRAME

§

PT_GNU_PROPERTY

§

PT_GNU_STACK

§

GNU_RELRO

§

PT_HIOS

§

PT_LOPROC

§

PT_HIPROC

§

Unknown(u32)

Trait Implementations§

source§

impl Clone for PHType

source§

fn clone(&self) -> PHType

Returns a copy 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 Convert<PHType> for u32

source§

impl Convert<u32> for PHType

source§

impl Debug for PHType

source§

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

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

impl Default for PHType

source§

fn default() -> Self

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

impl From<PHType> for u32

source§

fn from(enum_value: PHType) -> Self

Converts to this type from the input type.
source§

impl PartialEq<PHType> for PHType

source§

fn eq(&self, other: &PHType) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<u32> for PHType

§

type Error = TryFromPrimitiveError<PHType>

The type returned in the event of a conversion error.
source§

fn try_from(number: u32) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
source§

impl TryFromPrimitive for PHType

Variants§

§

PT_NULL

§

PT_LOAD

§

PT_DYNAMIC

§

PT_INTERP

§

PT_NOTE

§

PT_SHLIB

§

PT_PHDR

§

PT_TLS

§

PT_LOOS

§

PT_GNU_EH_FRAME

§

PT_GNU_PROPERTY

§

PT_GNU_STACK

§

GNU_RELRO

§

PT_HIOS

§

PT_LOPROC

§

PT_HIPROC

§

Unknown(u32)

Trait Implementations§

source§

impl Clone for PHType

source§

fn clone(&self) -> PHType

Returns a copy 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 Convert<PHType> for u32

source§

impl Convert<u32> for PHType

source§

impl Debug for PHType

source§

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

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

impl Default for PHType

source§

fn default() -> Self

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

impl From<PHType> for u32

source§

fn from(enum_value: PHType) -> Self

Converts to this type from the input type.
source§

impl PartialEq<PHType> for PHType

source§

fn eq(&self, other: &PHType) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<u32> for PHType

§

type Error = TryFromPrimitiveError<PHType>

The type returned in the event of a conversion error.
source§

fn try_from(number: u32) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
source§

impl TryFromPrimitive for PHType

§

type Primitive = u32

source§

const NAME: &'static str = _

source§

fn try_from_primitive( number: Self::Primitive -) -> Result<Self, TryFromPrimitiveError<Self>>

source§

impl Copy for PHType

source§

impl StructuralPartialEq for PHType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Self, TryFromPrimitiveError<Self>>
source§

impl Copy for PHType

source§

impl StructuralPartialEq for PHType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/common/enum.SHFlags.html b/deaf/common/enum.SHFlags.html index 6f73fd7..b5906d9 100644 --- a/deaf/common/enum.SHFlags.html +++ b/deaf/common/enum.SHFlags.html @@ -1,4 +1,4 @@ -SHFlags in deaf::common - Rust

Enum deaf::common::SHFlags

source ·
#[repr(u64)]
pub enum SHFlags { +SHFlags in deaf::common - Rust

Enum deaf::common::SHFlags

source ·
#[repr(u64)]
pub enum SHFlags { SHF_WRITE, SHF_ALLOC, SHF_EXECINSTR, @@ -13,18 +13,18 @@ SHF_EXCLUDE, }
Expand description

The flags of a particular section header

This enum is generally parsed from the section headers (sh_flags).

-

Variants§

§

SHF_WRITE

§

SHF_ALLOC

§

SHF_EXECINSTR

§

SHF_MERGE

§

SHF_STRINGS

§

SHF_OS_NONCONFORMING

§

SHF_GROUP

§

SHF_TLS

§

SHF_ORDERED

§

SHF_EXCLUDE

Trait Implementations§

source§

impl BitAnd<SHFlags> for SHFlags

§

type Output = BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>

The resulting type after applying the & operator.
source§

fn bitand(self, other: Self) -> Self::Output

Performs the & operation. Read more
source§

impl BitFlag for SHFlags

§

fn empty() -> BitFlags<Self, Self::Numeric>

Create a BitFlags with no flags set (in other words, with a value of 0). Read more
§

fn all() -> BitFlags<Self, Self::Numeric>

Create a BitFlags with all flags set. Read more
source§

impl BitOr<SHFlags> for SHFlags

§

type Output = BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>

The resulting type after applying the | operator.
source§

fn bitor(self, other: Self) -> Self::Output

Performs the | operation. Read more
source§

impl BitXor<SHFlags> for SHFlags

§

type Output = BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: Self) -> Self::Output

Performs the ^ operation. Read more
source§

impl Clone for SHFlags

source§

fn clone(&self) -> SHFlags

Returns a copy 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 Debug for SHFlags

source§

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

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

impl Not for SHFlags

§

type Output = BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>

The resulting type after applying the ! operator.
source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
source§

impl PartialEq<SHFlags> for SHFlags

source§

fn eq(&self, other: &SHFlags) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl RawBitFlags for SHFlags

§

type Numeric = u64

The underlying integer type.
source§

const EMPTY: Self::Numeric = {transmute(0x0000000000000000): <common::constants::SHFlags as enumflags2::_internal::RawBitFlags>::Numeric}

A value with no bits set.
source§

const DEFAULT: Self::Numeric = {transmute(0x0000000000000000): <common::constants::SHFlags as enumflags2::_internal::RawBitFlags>::Numeric}

The value used by the Default implementation. Equivalent to EMPTY, unless -customized.
source§

const ALL_BITS: Self::Numeric = {transmute(0x00000000c00007f7): <common::constants::SHFlags as enumflags2::_internal::RawBitFlags>::Numeric}

A value with all flag bits set.
source§

const BITFLAGS_TYPE_NAME: &'static str = _

The name of the type for debug formatting purposes. Read more
source§

fn bits(self) -> Self::Numeric

Return the bits as a number type.
source§

impl Copy for SHFlags

source§

impl StructuralPartialEq for SHFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Variants§

§

SHF_WRITE

§

SHF_ALLOC

§

SHF_EXECINSTR

§

SHF_MERGE

§

SHF_STRINGS

§

SHF_OS_NONCONFORMING

§

SHF_GROUP

§

SHF_TLS

§

SHF_ORDERED

§

SHF_EXCLUDE

Trait Implementations§

source§

impl BitAnd<SHFlags> for SHFlags

§

type Output = BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>

The resulting type after applying the & operator.
source§

fn bitand(self, other: Self) -> Self::Output

Performs the & operation. Read more
source§

impl BitFlag for SHFlags

§

fn empty() -> BitFlags<Self, Self::Numeric>

Create a BitFlags with no flags set (in other words, with a value of 0). Read more
§

fn all() -> BitFlags<Self, Self::Numeric>

Create a BitFlags with all flags set. Read more
source§

impl BitOr<SHFlags> for SHFlags

§

type Output = BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>

The resulting type after applying the | operator.
source§

fn bitor(self, other: Self) -> Self::Output

Performs the | operation. Read more
source§

impl BitXor<SHFlags> for SHFlags

§

type Output = BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: Self) -> Self::Output

Performs the ^ operation. Read more
source§

impl Clone for SHFlags

source§

fn clone(&self) -> SHFlags

Returns a copy 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 Debug for SHFlags

source§

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

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

impl Not for SHFlags

§

type Output = BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>

The resulting type after applying the ! operator.
source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
source§

impl PartialEq<SHFlags> for SHFlags

source§

fn eq(&self, other: &SHFlags) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl RawBitFlags for SHFlags

§

type Numeric = u64

The underlying integer type.
source§

const EMPTY: Self::Numeric = {transmute(0x0000000000000000): <common::constants::SHFlags as enumflags2::_internal::RawBitFlags>::Numeric}

A value with no bits set.
source§

const DEFAULT: Self::Numeric = {transmute(0x0000000000000000): <common::constants::SHFlags as enumflags2::_internal::RawBitFlags>::Numeric}

The value used by the Default implementation. Equivalent to EMPTY, unless +customized.
source§

const ALL_BITS: Self::Numeric = {transmute(0x00000000c00007f7): <common::constants::SHFlags as enumflags2::_internal::RawBitFlags>::Numeric}

A value with all flag bits set.
source§

const BITFLAGS_TYPE_NAME: &'static str = _

The name of the type for debug formatting purposes. Read more
source§

fn bits(self) -> Self::Numeric

Return the bits as a number type.
source§

impl Copy for SHFlags

source§

impl StructuralPartialEq for SHFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/enum.SHType.html b/deaf/common/enum.SHType.html index fadaf45..b1a2f0d 100644 --- a/deaf/common/enum.SHType.html +++ b/deaf/common/enum.SHType.html @@ -1,4 +1,4 @@ -SHType in deaf::common - Rust

Enum deaf::common::SHType

source ·
#[repr(u32)]
pub enum SHType { +SHType in deaf::common - Rust

Enum deaf::common::SHType

source ·
#[repr(u32)]
pub enum SHType {
Show 30 variants SHT_NULL, SHT_PROGBITS, SHT_SYMTAB, @@ -28,23 +28,23 @@ SHT_ARM_ATTRIBUTES, SHT_ARM_DEBUGOVERLAY, SHT_ARM_OVERLAYSECTION, - Unknown(u32), + Unknown(u32),
}
Expand description

The type of a section header

This enum is generally parsed from the section headers (sh_type).

-

Variants§

§

SHT_NULL

§

SHT_PROGBITS

§

SHT_SYMTAB

§

SHT_STRTAB

§

SHT_RELA

§

SHT_HASH

§

SHT_DYNAMIC

§

SHT_NOTE

§

SHT_NOBITS

§

SHT_REL

§

SHT_SHLIB

§

SHT_DYNSYM

§

SHT_INIT_ARRAY

§

SHT_FINI_ARRAY

§

SHT_PREINIT_ARRAY

§

SHT_GROUP

§

SHT_SYMTAB_SHNDX

§

SHT_NUM

§

SHT_LOOS

§

SHT_GNU_HASH

§

SHT_GNU_LIBLIST

§

SHT_VERDEF

§

SHT_VERNEED

§

SHT_VERSYM

§

SHT_ARM_EXIDX

§

SHT_ARM_PREEMPTMAP

§

SHT_ARM_ATTRIBUTES

§

SHT_ARM_DEBUGOVERLAY

§

SHT_ARM_OVERLAYSECTION

§

Unknown(u32)

Trait Implementations§

source§

impl Clone for SHType

source§

fn clone(&self) -> SHType

Returns a copy 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 Convert<SHType> for u32

source§

impl Convert<u32> for SHType

source§

impl Debug for SHType

source§

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

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

impl Default for SHType

source§

fn default() -> Self

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

impl From<SHType> for SectionType

source§

fn from(v: SHType) -> Self

Converts to this type from the input type.
source§

impl From<SHType> for u32

source§

fn from(enum_value: SHType) -> Self

Converts to this type from the input type.
source§

impl From<SectionType> for SHType

source§

fn from(v: SectionType) -> Self

Converts to this type from the input type.
source§

impl From<u32> for SHType

source§

fn from(number: u32) -> Self

Converts to this type from the input type.
source§

impl FromPrimitive for SHType

§

type Primitive = u32

source§

fn from_primitive(number: Self::Primitive) -> Self

source§

impl PartialEq<SHType> for SHType

source§

fn eq(&self, other: &SHType) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TryFromPrimitive for SHType

Variants§

§

SHT_NULL

§

SHT_PROGBITS

§

SHT_SYMTAB

§

SHT_STRTAB

§

SHT_RELA

§

SHT_HASH

§

SHT_DYNAMIC

§

SHT_NOTE

§

SHT_NOBITS

§

SHT_REL

§

SHT_SHLIB

§

SHT_DYNSYM

§

SHT_INIT_ARRAY

§

SHT_FINI_ARRAY

§

SHT_PREINIT_ARRAY

§

SHT_GROUP

§

SHT_SYMTAB_SHNDX

§

SHT_NUM

§

SHT_LOOS

§

SHT_GNU_HASH

§

SHT_GNU_LIBLIST

§

SHT_VERDEF

§

SHT_VERNEED

§

SHT_VERSYM

§

SHT_ARM_EXIDX

§

SHT_ARM_PREEMPTMAP

§

SHT_ARM_ATTRIBUTES

§

SHT_ARM_DEBUGOVERLAY

§

SHT_ARM_OVERLAYSECTION

§

Unknown(u32)

Trait Implementations§

source§

impl Clone for SHType

source§

fn clone(&self) -> SHType

Returns a copy 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 Convert<SHType> for u32

source§

impl Convert<u32> for SHType

source§

impl Debug for SHType

source§

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

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

impl Default for SHType

source§

fn default() -> Self

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

impl From<SHType> for SectionType

source§

fn from(v: SHType) -> Self

Converts to this type from the input type.
source§

impl From<SHType> for u32

source§

fn from(enum_value: SHType) -> Self

Converts to this type from the input type.
source§

impl From<SectionType> for SHType

source§

fn from(v: SectionType) -> Self

Converts to this type from the input type.
source§

impl From<u32> for SHType

source§

fn from(number: u32) -> Self

Converts to this type from the input type.
source§

impl FromPrimitive for SHType

§

type Primitive = u32

source§

fn from_primitive(number: Self::Primitive) -> Self

source§

impl PartialEq<SHType> for SHType

source§

fn eq(&self, other: &SHType) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFromPrimitive for SHType

§

type Primitive = u32

source§

const NAME: &'static str = _

source§

fn try_from_primitive( number: Self::Primitive -) -> Result<Self, TryFromPrimitiveError<Self>>

source§

impl Copy for SHType

source§

impl StructuralPartialEq for SHType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Self, TryFromPrimitiveError<Self>>
source§

impl Copy for SHType

source§

impl StructuralPartialEq for SHType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/common/enum.STBind.html b/deaf/common/enum.STBind.html index 7aa21e9..f098aec 100644 --- a/deaf/common/enum.STBind.html +++ b/deaf/common/enum.STBind.html @@ -1,23 +1,24 @@ -STBind in deaf::common - Rust

Enum deaf::common::STBind

source ·
#[repr(u8)]
pub enum STBind { +STBind in deaf::common - Rust

Enum deaf::common::STBind

source ·
#[repr(u8)]
pub enum STBind { STB_LOCAL, STB_GLOBAL, STB_WEAK, }
Expand description

The binding of a symbol entry from a static or dynamic symbol table

-

This enum is parsed from symbol table entities (st_info).

-

Variants§

§

STB_LOCAL

§

STB_GLOBAL

§

STB_WEAK

Trait Implementations§

source§

impl Clone for STBind

source§

fn clone(&self) -> STBind

Returns a copy 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 Debug for STBind

source§

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

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

impl Default for STBind

source§

fn default() -> STBind

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

impl From<STBind> for u8

source§

fn from(enum_value: STBind) -> Self

Converts to this type from the input type.
source§

impl PartialEq<STBind> for STBind

source§

fn eq(&self, other: &STBind) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<u8> for STBind

§

type Error = TryFromPrimitiveError<STBind>

The type returned in the event of a conversion error.
source§

fn try_from(number: u8) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
source§

impl TryFromPrimitive for STBind

§

type Primitive = u8

source§

const NAME: &'static str = _

source§

fn try_from_primitive( +

This enum is parsed from the upper 4 bits of the 1-byte ‘st_info’ +field include in each entry of the symbol table.

+

Variants§

§

STB_LOCAL

§

STB_GLOBAL

§

STB_WEAK

Trait Implementations§

source§

impl Clone for STBind

source§

fn clone(&self) -> STBind

Returns a copy 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 Debug for STBind

source§

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

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

impl Default for STBind

source§

fn default() -> STBind

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

impl From<STBind> for u8

source§

fn from(enum_value: STBind) -> Self

Converts to this type from the input type.
source§

impl From<u8> for STBind

source§

fn from(number: u8) -> Self

Converts to this type from the input type.
source§

impl FromPrimitive for STBind

§

type Primitive = u8

source§

fn from_primitive(number: Self::Primitive) -> Self

source§

impl PartialEq<STBind> for STBind

source§

fn eq(&self, other: &STBind) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFromPrimitive for STBind

§

type Primitive = u8

source§

const NAME: &'static str = _

source§

fn try_from_primitive( number: Self::Primitive -) -> Result<Self, TryFromPrimitiveError<Self>>

source§

impl Copy for STBind

source§

impl StructuralPartialEq for STBind

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Self, TryFromPrimitiveError<Self>>
source§

impl Copy for STBind

source§

impl StructuralPartialEq for STBind

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/common/enum.STType.html b/deaf/common/enum.STType.html index a89fe81..b210bb4 100644 --- a/deaf/common/enum.STType.html +++ b/deaf/common/enum.STType.html @@ -1,4 +1,4 @@ -STType in deaf::common - Rust

Enum deaf::common::STType

source ·
#[repr(u8)]
pub enum STType { +STType in deaf::common - Rust

Enum deaf::common::STType

source ·
#[repr(u8)]
pub enum STType { STT_NOTYPE, STT_OBJECT, STT_FUNC, @@ -7,21 +7,22 @@ STT_COMMON, STT_TLS, }
Expand description

The type of a symbol entry from a static or dynamic symbol table

-

This enum is parsed from symbol table entities (st_info).

-

Variants§

§

STT_NOTYPE

§

STT_OBJECT

§

STT_FUNC

§

STT_SECTION

§

STT_FILE

§

STT_COMMON

§

STT_TLS

Trait Implementations§

source§

impl Clone for STType

source§

fn clone(&self) -> STType

Returns a copy 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 Debug for STType

source§

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

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

impl Default for STType

source§

fn default() -> STType

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

impl From<STType> for u8

source§

fn from(enum_value: STType) -> Self

Converts to this type from the input type.
source§

impl PartialEq<STType> for STType

source§

fn eq(&self, other: &STType) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<u8> for STType

§

type Error = TryFromPrimitiveError<STType>

The type returned in the event of a conversion error.
source§

fn try_from(number: u8) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
source§

impl TryFromPrimitive for STType

§

type Primitive = u8

source§

const NAME: &'static str = _

source§

fn try_from_primitive( +

This enum is parsed from the lower 4 bits of the 1-byte ‘st_info’ +field include in each entry of the symbol table.

+

Variants§

§

STT_NOTYPE

§

STT_OBJECT

§

STT_FUNC

§

STT_SECTION

§

STT_FILE

§

STT_COMMON

§

STT_TLS

Trait Implementations§

source§

impl Clone for STType

source§

fn clone(&self) -> STType

Returns a copy 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 Debug for STType

source§

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

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

impl Default for STType

source§

fn default() -> STType

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

impl From<STType> for u8

source§

fn from(enum_value: STType) -> Self

Converts to this type from the input type.
source§

impl From<u8> for STType

source§

fn from(number: u8) -> Self

Converts to this type from the input type.
source§

impl FromPrimitive for STType

§

type Primitive = u8

source§

fn from_primitive(number: Self::Primitive) -> Self

source§

impl PartialEq<STType> for STType

source§

fn eq(&self, other: &STType) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFromPrimitive for STType

§

type Primitive = u8

source§

const NAME: &'static str = _

source§

fn try_from_primitive( number: Self::Primitive -) -> Result<Self, TryFromPrimitiveError<Self>>

source§

impl Copy for STType

source§

impl StructuralPartialEq for STType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Self, TryFromPrimitiveError<Self>>
source§

impl Copy for STType

source§

impl StructuralPartialEq for STType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/common/enum.STVisibility.html b/deaf/common/enum.STVisibility.html new file mode 100644 index 0000000..5438a84 --- /dev/null +++ b/deaf/common/enum.STVisibility.html @@ -0,0 +1,28 @@ +STVisibility in deaf::common - Rust
#[repr(u8)]
pub enum STVisibility { + STV_DEFAULT, + STV_INTERNAL, + STV_HIDDEN, + STV_PROTECTED, +}
Expand description

The binding of a symbol entry from a static or dynamic symbol table

+

This enum is parsed entries in the symbol table.

+

Variants§

§

STV_DEFAULT

The visibility is as specified by the symbol binding type

+
§

STV_INTERNAL

This visibility attribute is currently reserved

+
§

STV_HIDDEN

This symbol is protected and not externally visible

+
§

STV_PROTECTED

External references must be resolved externally

+

Trait Implementations§

source§

impl Clone for STVisibility

source§

fn clone(&self) -> STVisibility

Returns a copy 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 Debug for STVisibility

source§

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

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

impl Default for STVisibility

source§

fn default() -> STVisibility

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

impl From<STVisibility> for u8

source§

fn from(enum_value: STVisibility) -> Self

Converts to this type from the input type.
source§

impl From<u8> for STVisibility

source§

fn from(number: u8) -> Self

Converts to this type from the input type.
source§

impl FromPrimitive for STVisibility

§

type Primitive = u8

source§

fn from_primitive(number: Self::Primitive) -> Self

source§

impl PartialEq<STVisibility> for STVisibility

source§

fn eq(&self, other: &STVisibility) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFromPrimitive for STVisibility

§

type Primitive = u8

source§

const NAME: &'static str = _

source§

fn try_from_primitive( + number: Self::Primitive +) -> Result<Self, TryFromPrimitiveError<Self>>

source§

impl Copy for STVisibility

source§

impl StructuralPartialEq for STVisibility

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/common/enum.SectionType.html b/deaf/common/enum.SectionType.html index 272f908..1128d44 100644 --- a/deaf/common/enum.SectionType.html +++ b/deaf/common/enum.SectionType.html @@ -1,4 +1,4 @@ -SectionType in deaf::common - Rust

Enum deaf::common::SectionType

source ·
pub enum SectionType {
+SectionType in deaf::common - Rust

Enum deaf::common::SectionType

source ·
pub enum SectionType {
 
Show 21 variants Null, Program, Symbols, @@ -20,17 +20,17 @@ Group, ReservedTypes, Unknown, -
}

Variants§

§

Null

§

Program

§

Symbols

§

DynamicSymbols

§

ExtendedSymbols

§

Strings

§

Relocations

§

RelocationsAddend

§

Hash

§

GNUHash

§

Dynamic

§

Notes

§

Empty

§

Reserved

§

GNULibList

§

InitArray

§

FiniArray

§

PreInitArray

§

Group

§

ReservedTypes

§

Unknown

Trait Implementations§

source§

impl Clone for SectionType

source§

fn clone(&self) -> SectionType

Returns a copy 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 Debug for SectionType

source§

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

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

impl From<SHType> for SectionType

source§

fn from(v: SHType) -> Self

Converts to this type from the input type.
source§

impl From<SectionType> for SHType

source§

fn from(v: SectionType) -> Self

Converts to this type from the input type.
source§

impl PartialEq<SectionType> for SectionType

source§

fn eq(&self, other: &SectionType) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for SectionType

source§

impl StructuralPartialEq for SectionType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
}

Variants§

§

Null

§

Program

§

Symbols

§

DynamicSymbols

§

ExtendedSymbols

§

Strings

§

Relocations

§

RelocationsAddend

§

Hash

§

GNUHash

§

Dynamic

§

Notes

§

Empty

§

Reserved

§

GNULibList

§

InitArray

§

FiniArray

§

PreInitArray

§

Group

§

ReservedTypes

§

Unknown

Trait Implementations§

source§

impl Clone for SectionType

source§

fn clone(&self) -> SectionType

Returns a copy 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 Debug for SectionType

source§

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

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

impl From<SHType> for SectionType

source§

fn from(v: SHType) -> Self

Converts to this type from the input type.
source§

impl From<SectionType> for SHType

source§

fn from(v: SectionType) -> Self

Converts to this type from the input type.
source§

impl PartialEq<SectionType> for SectionType

source§

fn eq(&self, other: &SectionType) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Copy for SectionType

source§

impl StructuralPartialEq for SectionType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/enum.Width.html b/deaf/common/enum.Width.html index 2ec7413..2c521f9 100644 --- a/deaf/common/enum.Width.html +++ b/deaf/common/enum.Width.html @@ -1,4 +1,4 @@ -Width in deaf::common - Rust

Enum deaf::common::Width

source ·
#[repr(u8)]
pub enum Width { +Width in deaf::common - Rust

Enum deaf::common::Width

source ·
#[repr(u8)]
pub enum Width { X32, X64, }
Expand description

The mode of the ELF file

@@ -6,20 +6,20 @@ passed to all of the other sections for parsing addresses etc.

Variants§

§

X32

Mode of the ELF file is 32-bit

§

X64

Mode of the ELF file is 64-bit

-

Trait Implementations§

source§

impl Clone for Width

source§

fn clone(&self) -> Width

Returns a copy 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 Convert<Width> for u8

source§

impl Convert<u8> for Width

source§

impl Debug for Width

source§

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

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

impl Default for Width

source§

fn default() -> Width

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

impl From<Width> for u8

source§

fn from(enum_value: Width) -> Self

Converts to this type from the input type.
source§

impl PartialEq<Width> for Width

source§

fn eq(&self, other: &Width) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<u8> for Width

§

type Error = TryFromPrimitiveError<Width>

The type returned in the event of a conversion error.
source§

fn try_from(number: u8) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
source§

impl TryFromPrimitive for Width

Trait Implementations§

source§

impl Clone for Width

source§

fn clone(&self) -> Width

Returns a copy 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 Convert<Width> for u8

source§

impl Convert<u8> for Width

source§

impl Debug for Width

source§

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

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

impl Default for Width

source§

fn default() -> Width

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

impl From<Width> for u8

source§

fn from(enum_value: Width) -> Self

Converts to this type from the input type.
source§

impl PartialEq<Width> for Width

source§

fn eq(&self, other: &Width) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<u8> for Width

§

type Error = TryFromPrimitiveError<Width>

The type returned in the event of a conversion error.
source§

fn try_from(number: u8) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
source§

impl TryFromPrimitive for Width

§

type Primitive = u8

source§

const NAME: &'static str = _

source§

fn try_from_primitive( number: Self::Primitive -) -> Result<Self, TryFromPrimitiveError<Self>>

source§

impl Copy for Width

source§

impl StructuralPartialEq for Width

Auto Trait Implementations§

§

impl RefUnwindSafe for Width

§

impl Send for Width

§

impl Sync for Width

§

impl Unpin for Width

§

impl UnwindSafe for Width

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Self, TryFromPrimitiveError<Self>>
source§

impl Copy for Width

source§

impl StructuralPartialEq for Width

Auto Trait Implementations§

§

impl RefUnwindSafe for Width

§

impl Send for Width

§

impl Sync for Width

§

impl Unpin for Width

§

impl UnwindSafe for Width

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/common/index.html b/deaf/common/index.html index 464bf1a..ce031d7 100644 --- a/deaf/common/index.html +++ b/deaf/common/index.html @@ -1,6 +1,6 @@ -deaf::common - Rust

Module deaf::common

source ·
Expand description

Common structs and types used by all other modules

+deaf::common - Rust

Module deaf::common

source ·
Expand description

Common structs and types used by all other modules

Re-exports

Modules

Structs

  • Placeholder target for Update
  • An iterator that uses a delimiting value or length to convert a byte buffer into a series of slices.
  • A single field in a section, table item etc.
  • An item in a section, table item etc that contains a field and associated value.
  • Update for an object of type T

Enums

  • The delimiter used to determine the ending index of -sub-slices returned by ByteIter.
  • The endianness of the ELF file
  • The type of a program header
  • The flags of a particular section header
  • The type of a section header
  • The binding of a symbol entry from a static or dynamic symbol table
  • The type of a symbol entry from a static or dynamic symbol table
  • The mode of the ELF file

Traits

  • Convert a value into another value
  • Parse an object from bytes
  • Convert an object into bytes
  • Trait to add an update function to +sub-slices returned by ByteIter.
  • The endianness of the ELF file
  • The type of a program header
  • The flags of a particular section header
  • The type of a section header
  • The binding of a symbol entry from a static or dynamic symbol table
  • The type of a symbol entry from a static or dynamic symbol table
  • The binding of a symbol entry from a static or dynamic symbol table
  • The mode of the ELF file

Traits

\ No newline at end of file diff --git a/deaf/common/ranges/constant.ADDRESS.html b/deaf/common/ranges/constant.ADDRESS.html index 5080cf3..1f4961b 100644 --- a/deaf/common/ranges/constant.ADDRESS.html +++ b/deaf/common/ranges/constant.ADDRESS.html @@ -1 +1 @@ -ADDRESS in deaf::common::ranges - Rust

Constant deaf::common::ranges::ADDRESS

source ·
pub const ADDRESS: Ranges;
\ No newline at end of file +ADDRESS in deaf::common::ranges - Rust

Constant deaf::common::ranges::ADDRESS

source ·
pub const ADDRESS: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.BLOOMSHIFT.html b/deaf/common/ranges/constant.BLOOMSHIFT.html index 0686bb6..4ae821b 100644 --- a/deaf/common/ranges/constant.BLOOMSHIFT.html +++ b/deaf/common/ranges/constant.BLOOMSHIFT.html @@ -1 +1 @@ -BLOOMSHIFT in deaf::common::ranges - Rust

Constant deaf::common::ranges::BLOOMSHIFT

source ·
pub const BLOOMSHIFT: Ranges;
\ No newline at end of file +BLOOMSHIFT in deaf::common::ranges - Rust

Constant deaf::common::ranges::BLOOMSHIFT

source ·
pub const BLOOMSHIFT: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.BLOOMSIZE.html b/deaf/common/ranges/constant.BLOOMSIZE.html index 642080b..ac0a5e3 100644 --- a/deaf/common/ranges/constant.BLOOMSIZE.html +++ b/deaf/common/ranges/constant.BLOOMSIZE.html @@ -1 +1 @@ -BLOOMSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::BLOOMSIZE

source ·
pub const BLOOMSIZE: Ranges;
\ No newline at end of file +BLOOMSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::BLOOMSIZE

source ·
pub const BLOOMSIZE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.EI_ABIVERSION.html b/deaf/common/ranges/constant.EI_ABIVERSION.html index fe3f5b2..f2469c5 100644 --- a/deaf/common/ranges/constant.EI_ABIVERSION.html +++ b/deaf/common/ranges/constant.EI_ABIVERSION.html @@ -1 +1 @@ -EI_ABIVERSION in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_ABIVERSION

source ·
pub const EI_ABIVERSION: Ranges;
\ No newline at end of file +EI_ABIVERSION in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_ABIVERSION

source ·
pub const EI_ABIVERSION: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.EI_CLASS.html b/deaf/common/ranges/constant.EI_CLASS.html index c1415f8..b3bfd6b 100644 --- a/deaf/common/ranges/constant.EI_CLASS.html +++ b/deaf/common/ranges/constant.EI_CLASS.html @@ -1 +1 @@ -EI_CLASS in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_CLASS

source ·
pub const EI_CLASS: Ranges;
\ No newline at end of file +EI_CLASS in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_CLASS

source ·
pub const EI_CLASS: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.EI_DATA.html b/deaf/common/ranges/constant.EI_DATA.html index c58d15a..8f9ff5b 100644 --- a/deaf/common/ranges/constant.EI_DATA.html +++ b/deaf/common/ranges/constant.EI_DATA.html @@ -1 +1 @@ -EI_DATA in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_DATA

source ·
pub const EI_DATA: Ranges;
\ No newline at end of file +EI_DATA in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_DATA

source ·
pub const EI_DATA: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.EI_KEY.html b/deaf/common/ranges/constant.EI_KEY.html index 6a0b49d..1a2ef75 100644 --- a/deaf/common/ranges/constant.EI_KEY.html +++ b/deaf/common/ranges/constant.EI_KEY.html @@ -1 +1 @@ -EI_KEY in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_KEY

source ·
pub const EI_KEY: Ranges;
\ No newline at end of file +EI_KEY in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_KEY

source ·
pub const EI_KEY: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.EI_MAGIC.html b/deaf/common/ranges/constant.EI_MAGIC.html index 7f6784d..a6d9606 100644 --- a/deaf/common/ranges/constant.EI_MAGIC.html +++ b/deaf/common/ranges/constant.EI_MAGIC.html @@ -1 +1 @@ -EI_MAGIC in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_MAGIC

source ·
pub const EI_MAGIC: Ranges;
\ No newline at end of file +EI_MAGIC in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_MAGIC

source ·
pub const EI_MAGIC: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.EI_OSABI.html b/deaf/common/ranges/constant.EI_OSABI.html index e640469..3cae935 100644 --- a/deaf/common/ranges/constant.EI_OSABI.html +++ b/deaf/common/ranges/constant.EI_OSABI.html @@ -1 +1 @@ -EI_OSABI in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_OSABI

source ·
pub const EI_OSABI: Ranges;
\ No newline at end of file +EI_OSABI in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_OSABI

source ·
pub const EI_OSABI: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.EI_PAD.html b/deaf/common/ranges/constant.EI_PAD.html index 6ff3552..911c36c 100644 --- a/deaf/common/ranges/constant.EI_PAD.html +++ b/deaf/common/ranges/constant.EI_PAD.html @@ -1 +1 @@ -EI_PAD in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_PAD

source ·
pub const EI_PAD: Ranges;
\ No newline at end of file +EI_PAD in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_PAD

source ·
pub const EI_PAD: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.EI_VERSION.html b/deaf/common/ranges/constant.EI_VERSION.html index 8c65a61..15ae04b 100644 --- a/deaf/common/ranges/constant.EI_VERSION.html +++ b/deaf/common/ranges/constant.EI_VERSION.html @@ -1 +1 @@ -EI_VERSION in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_VERSION

source ·
pub const EI_VERSION: Ranges;
\ No newline at end of file +EI_VERSION in deaf::common::ranges - Rust

Constant deaf::common::ranges::EI_VERSION

source ·
pub const EI_VERSION: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_EHSIZE.html b/deaf/common/ranges/constant.E_EHSIZE.html index abecd70..2eb4d97 100644 --- a/deaf/common/ranges/constant.E_EHSIZE.html +++ b/deaf/common/ranges/constant.E_EHSIZE.html @@ -1 +1 @@ -E_EHSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_EHSIZE

source ·
pub const E_EHSIZE: Ranges;
\ No newline at end of file +E_EHSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_EHSIZE

source ·
pub const E_EHSIZE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_ENTRY.html b/deaf/common/ranges/constant.E_ENTRY.html index e549158..a195618 100644 --- a/deaf/common/ranges/constant.E_ENTRY.html +++ b/deaf/common/ranges/constant.E_ENTRY.html @@ -1 +1 @@ -E_ENTRY in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_ENTRY

source ·
pub const E_ENTRY: Ranges;
\ No newline at end of file +E_ENTRY in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_ENTRY

source ·
pub const E_ENTRY: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_FLAGS.html b/deaf/common/ranges/constant.E_FLAGS.html index ad185f2..7d6fd15 100644 --- a/deaf/common/ranges/constant.E_FLAGS.html +++ b/deaf/common/ranges/constant.E_FLAGS.html @@ -1 +1 @@ -E_FLAGS in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_FLAGS

source ·
pub const E_FLAGS: Ranges;
\ No newline at end of file +E_FLAGS in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_FLAGS

source ·
pub const E_FLAGS: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_MACHINE.html b/deaf/common/ranges/constant.E_MACHINE.html index f6e5de2..0c66fef 100644 --- a/deaf/common/ranges/constant.E_MACHINE.html +++ b/deaf/common/ranges/constant.E_MACHINE.html @@ -1 +1 @@ -E_MACHINE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_MACHINE

source ·
pub const E_MACHINE: Ranges;
\ No newline at end of file +E_MACHINE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_MACHINE

source ·
pub const E_MACHINE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_PHENTSIZE.html b/deaf/common/ranges/constant.E_PHENTSIZE.html index 1e22986..395bf8c 100644 --- a/deaf/common/ranges/constant.E_PHENTSIZE.html +++ b/deaf/common/ranges/constant.E_PHENTSIZE.html @@ -1 +1 @@ -E_PHENTSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_PHENTSIZE

source ·
pub const E_PHENTSIZE: Ranges;
\ No newline at end of file +E_PHENTSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_PHENTSIZE

source ·
pub const E_PHENTSIZE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_PHNUM.html b/deaf/common/ranges/constant.E_PHNUM.html index 51de251..0790a33 100644 --- a/deaf/common/ranges/constant.E_PHNUM.html +++ b/deaf/common/ranges/constant.E_PHNUM.html @@ -1 +1 @@ -E_PHNUM in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_PHNUM

source ·
pub const E_PHNUM: Ranges;
\ No newline at end of file +E_PHNUM in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_PHNUM

source ·
pub const E_PHNUM: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_PHOFF.html b/deaf/common/ranges/constant.E_PHOFF.html index cbec199..778607d 100644 --- a/deaf/common/ranges/constant.E_PHOFF.html +++ b/deaf/common/ranges/constant.E_PHOFF.html @@ -1 +1 @@ -E_PHOFF in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_PHOFF

source ·
pub const E_PHOFF: Ranges;
\ No newline at end of file +E_PHOFF in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_PHOFF

source ·
pub const E_PHOFF: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_SHENTSIZE.html b/deaf/common/ranges/constant.E_SHENTSIZE.html index 9de64ab..6a42914 100644 --- a/deaf/common/ranges/constant.E_SHENTSIZE.html +++ b/deaf/common/ranges/constant.E_SHENTSIZE.html @@ -1 +1 @@ -E_SHENTSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_SHENTSIZE

source ·
pub const E_SHENTSIZE: Ranges;
\ No newline at end of file +E_SHENTSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_SHENTSIZE

source ·
pub const E_SHENTSIZE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_SHNUM.html b/deaf/common/ranges/constant.E_SHNUM.html index 287c657..706b375 100644 --- a/deaf/common/ranges/constant.E_SHNUM.html +++ b/deaf/common/ranges/constant.E_SHNUM.html @@ -1 +1 @@ -E_SHNUM in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_SHNUM

source ·
pub const E_SHNUM: Ranges;
\ No newline at end of file +E_SHNUM in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_SHNUM

source ·
pub const E_SHNUM: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_SHOFF.html b/deaf/common/ranges/constant.E_SHOFF.html index 85cf633..65dd9f5 100644 --- a/deaf/common/ranges/constant.E_SHOFF.html +++ b/deaf/common/ranges/constant.E_SHOFF.html @@ -1 +1 @@ -E_SHOFF in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_SHOFF

source ·
pub const E_SHOFF: Ranges;
\ No newline at end of file +E_SHOFF in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_SHOFF

source ·
pub const E_SHOFF: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_SHSTRNDX.html b/deaf/common/ranges/constant.E_SHSTRNDX.html index bc25f6d..59f8e08 100644 --- a/deaf/common/ranges/constant.E_SHSTRNDX.html +++ b/deaf/common/ranges/constant.E_SHSTRNDX.html @@ -1 +1 @@ -E_SHSTRNDX in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_SHSTRNDX

source ·
pub const E_SHSTRNDX: Ranges;
\ No newline at end of file +E_SHSTRNDX in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_SHSTRNDX

source ·
pub const E_SHSTRNDX: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_TYPE.html b/deaf/common/ranges/constant.E_TYPE.html index e99b98a..c1ea928 100644 --- a/deaf/common/ranges/constant.E_TYPE.html +++ b/deaf/common/ranges/constant.E_TYPE.html @@ -1 +1 @@ -E_TYPE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_TYPE

source ·
pub const E_TYPE: Ranges;
\ No newline at end of file +E_TYPE in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_TYPE

source ·
pub const E_TYPE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.E_VERSION.html b/deaf/common/ranges/constant.E_VERSION.html index c2372cd..6e71c88 100644 --- a/deaf/common/ranges/constant.E_VERSION.html +++ b/deaf/common/ranges/constant.E_VERSION.html @@ -1 +1 @@ -E_VERSION in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_VERSION

source ·
pub const E_VERSION: Ranges;
\ No newline at end of file +E_VERSION in deaf::common::ranges - Rust

Constant deaf::common::ranges::E_VERSION

source ·
pub const E_VERSION: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.NBUCKETS.html b/deaf/common/ranges/constant.NBUCKETS.html index f6bacf4..48658f4 100644 --- a/deaf/common/ranges/constant.NBUCKETS.html +++ b/deaf/common/ranges/constant.NBUCKETS.html @@ -1 +1 @@ -NBUCKETS in deaf::common::ranges - Rust

Constant deaf::common::ranges::NBUCKETS

source ·
pub const NBUCKETS: Ranges;
\ No newline at end of file +NBUCKETS in deaf::common::ranges - Rust

Constant deaf::common::ranges::NBUCKETS

source ·
pub const NBUCKETS: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.NCHAIN.html b/deaf/common/ranges/constant.NCHAIN.html index 360d30d..30bf10e 100644 --- a/deaf/common/ranges/constant.NCHAIN.html +++ b/deaf/common/ranges/constant.NCHAIN.html @@ -1 +1 @@ -NCHAIN in deaf::common::ranges - Rust

Constant deaf::common::ranges::NCHAIN

source ·
pub const NCHAIN: Ranges;
\ No newline at end of file +NCHAIN in deaf::common::ranges - Rust

Constant deaf::common::ranges::NCHAIN

source ·
pub const NCHAIN: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.P_ALIGN.html b/deaf/common/ranges/constant.P_ALIGN.html index 012d798..1293636 100644 --- a/deaf/common/ranges/constant.P_ALIGN.html +++ b/deaf/common/ranges/constant.P_ALIGN.html @@ -1 +1 @@ -P_ALIGN in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_ALIGN

source ·
pub const P_ALIGN: Ranges;
\ No newline at end of file +P_ALIGN in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_ALIGN

source ·
pub const P_ALIGN: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.P_FILESZ.html b/deaf/common/ranges/constant.P_FILESZ.html index fb45c01..9b9f895 100644 --- a/deaf/common/ranges/constant.P_FILESZ.html +++ b/deaf/common/ranges/constant.P_FILESZ.html @@ -1 +1 @@ -P_FILESZ in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_FILESZ

source ·
pub const P_FILESZ: Ranges;
\ No newline at end of file +P_FILESZ in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_FILESZ

source ·
pub const P_FILESZ: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.P_FLAGS.html b/deaf/common/ranges/constant.P_FLAGS.html index b06f93d..1316ed3 100644 --- a/deaf/common/ranges/constant.P_FLAGS.html +++ b/deaf/common/ranges/constant.P_FLAGS.html @@ -1 +1 @@ -P_FLAGS in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_FLAGS

source ·
pub const P_FLAGS: Ranges;
\ No newline at end of file +P_FLAGS in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_FLAGS

source ·
pub const P_FLAGS: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.P_MEMSZ.html b/deaf/common/ranges/constant.P_MEMSZ.html index cb4e33a..6275a0a 100644 --- a/deaf/common/ranges/constant.P_MEMSZ.html +++ b/deaf/common/ranges/constant.P_MEMSZ.html @@ -1 +1 @@ -P_MEMSZ in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_MEMSZ

source ·
pub const P_MEMSZ: Ranges;
\ No newline at end of file +P_MEMSZ in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_MEMSZ

source ·
pub const P_MEMSZ: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.P_OFFSET.html b/deaf/common/ranges/constant.P_OFFSET.html index 5086ae4..ee6b8c9 100644 --- a/deaf/common/ranges/constant.P_OFFSET.html +++ b/deaf/common/ranges/constant.P_OFFSET.html @@ -1 +1 @@ -P_OFFSET in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_OFFSET

source ·
pub const P_OFFSET: Ranges;
\ No newline at end of file +P_OFFSET in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_OFFSET

source ·
pub const P_OFFSET: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.P_PADDR.html b/deaf/common/ranges/constant.P_PADDR.html index 93d7c10..a0abd54 100644 --- a/deaf/common/ranges/constant.P_PADDR.html +++ b/deaf/common/ranges/constant.P_PADDR.html @@ -1 +1 @@ -P_PADDR in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_PADDR

source ·
pub const P_PADDR: Ranges;
\ No newline at end of file +P_PADDR in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_PADDR

source ·
pub const P_PADDR: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.P_TYPE.html b/deaf/common/ranges/constant.P_TYPE.html index 8038507..7480fc5 100644 --- a/deaf/common/ranges/constant.P_TYPE.html +++ b/deaf/common/ranges/constant.P_TYPE.html @@ -1 +1 @@ -P_TYPE in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_TYPE

source ·
pub const P_TYPE: Ranges;
\ No newline at end of file +P_TYPE in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_TYPE

source ·
pub const P_TYPE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.P_VADDR.html b/deaf/common/ranges/constant.P_VADDR.html index f2b827b..b470888 100644 --- a/deaf/common/ranges/constant.P_VADDR.html +++ b/deaf/common/ranges/constant.P_VADDR.html @@ -1 +1 @@ -P_VADDR in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_VADDR

source ·
pub const P_VADDR: Ranges;
\ No newline at end of file +P_VADDR in deaf::common::ranges - Rust

Constant deaf::common::ranges::P_VADDR

source ·
pub const P_VADDR: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.RT_ADDEND.html b/deaf/common/ranges/constant.RT_ADDEND.html index 1909e51..5fb1261 100644 --- a/deaf/common/ranges/constant.RT_ADDEND.html +++ b/deaf/common/ranges/constant.RT_ADDEND.html @@ -1 +1 @@ -RT_ADDEND in deaf::common::ranges - Rust

Constant deaf::common::ranges::RT_ADDEND

source ·
pub const RT_ADDEND: Ranges;
\ No newline at end of file +RT_ADDEND in deaf::common::ranges - Rust

Constant deaf::common::ranges::RT_ADDEND

source ·
pub const RT_ADDEND: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.RT_INFO.html b/deaf/common/ranges/constant.RT_INFO.html index 4be750b..7bb135c 100644 --- a/deaf/common/ranges/constant.RT_INFO.html +++ b/deaf/common/ranges/constant.RT_INFO.html @@ -1 +1 @@ -RT_INFO in deaf::common::ranges - Rust

Constant deaf::common::ranges::RT_INFO

source ·
pub const RT_INFO: Ranges;
\ No newline at end of file +RT_INFO in deaf::common::ranges - Rust

Constant deaf::common::ranges::RT_INFO

source ·
pub const RT_INFO: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.RT_OFFSET.html b/deaf/common/ranges/constant.RT_OFFSET.html index 0bfbde4..47b5fa5 100644 --- a/deaf/common/ranges/constant.RT_OFFSET.html +++ b/deaf/common/ranges/constant.RT_OFFSET.html @@ -1 +1 @@ -RT_OFFSET in deaf::common::ranges - Rust

Constant deaf::common::ranges::RT_OFFSET

source ·
pub const RT_OFFSET: Ranges;
\ No newline at end of file +RT_OFFSET in deaf::common::ranges - Rust

Constant deaf::common::ranges::RT_OFFSET

source ·
pub const RT_OFFSET: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_ADDR.html b/deaf/common/ranges/constant.SH_ADDR.html index d4db543..1bf1006 100644 --- a/deaf/common/ranges/constant.SH_ADDR.html +++ b/deaf/common/ranges/constant.SH_ADDR.html @@ -1 +1 @@ -SH_ADDR in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_ADDR

source ·
pub const SH_ADDR: Ranges;
\ No newline at end of file +SH_ADDR in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_ADDR

source ·
pub const SH_ADDR: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_ADDRALIGN.html b/deaf/common/ranges/constant.SH_ADDRALIGN.html index 3c82539..901c638 100644 --- a/deaf/common/ranges/constant.SH_ADDRALIGN.html +++ b/deaf/common/ranges/constant.SH_ADDRALIGN.html @@ -1 +1 @@ -SH_ADDRALIGN in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_ADDRALIGN

source ·
pub const SH_ADDRALIGN: Ranges;
\ No newline at end of file +SH_ADDRALIGN in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_ADDRALIGN

source ·
pub const SH_ADDRALIGN: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_ENTSIZE.html b/deaf/common/ranges/constant.SH_ENTSIZE.html index d4b6bb7..cd75f3b 100644 --- a/deaf/common/ranges/constant.SH_ENTSIZE.html +++ b/deaf/common/ranges/constant.SH_ENTSIZE.html @@ -1 +1 @@ -SH_ENTSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_ENTSIZE

source ·
pub const SH_ENTSIZE: Ranges;
\ No newline at end of file +SH_ENTSIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_ENTSIZE

source ·
pub const SH_ENTSIZE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_FLAGS.html b/deaf/common/ranges/constant.SH_FLAGS.html index d7fcf16..387735e 100644 --- a/deaf/common/ranges/constant.SH_FLAGS.html +++ b/deaf/common/ranges/constant.SH_FLAGS.html @@ -1 +1 @@ -SH_FLAGS in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_FLAGS

source ·
pub const SH_FLAGS: Ranges;
\ No newline at end of file +SH_FLAGS in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_FLAGS

source ·
pub const SH_FLAGS: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_INFO.html b/deaf/common/ranges/constant.SH_INFO.html index cd9e144..29987c3 100644 --- a/deaf/common/ranges/constant.SH_INFO.html +++ b/deaf/common/ranges/constant.SH_INFO.html @@ -1 +1 @@ -SH_INFO in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_INFO

source ·
pub const SH_INFO: Ranges;
\ No newline at end of file +SH_INFO in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_INFO

source ·
pub const SH_INFO: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_LINK.html b/deaf/common/ranges/constant.SH_LINK.html index f586a6c..4cce49d 100644 --- a/deaf/common/ranges/constant.SH_LINK.html +++ b/deaf/common/ranges/constant.SH_LINK.html @@ -1 +1 @@ -SH_LINK in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_LINK

source ·
pub const SH_LINK: Ranges;
\ No newline at end of file +SH_LINK in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_LINK

source ·
pub const SH_LINK: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_NAME.html b/deaf/common/ranges/constant.SH_NAME.html index c05c5e3..947cd68 100644 --- a/deaf/common/ranges/constant.SH_NAME.html +++ b/deaf/common/ranges/constant.SH_NAME.html @@ -1 +1 @@ -SH_NAME in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_NAME

source ·
pub const SH_NAME: Ranges;
\ No newline at end of file +SH_NAME in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_NAME

source ·
pub const SH_NAME: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_OFFSET.html b/deaf/common/ranges/constant.SH_OFFSET.html index 1a083e1..c0f2b45 100644 --- a/deaf/common/ranges/constant.SH_OFFSET.html +++ b/deaf/common/ranges/constant.SH_OFFSET.html @@ -1 +1 @@ -SH_OFFSET in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_OFFSET

source ·
pub const SH_OFFSET: Ranges;
\ No newline at end of file +SH_OFFSET in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_OFFSET

source ·
pub const SH_OFFSET: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_SIZE.html b/deaf/common/ranges/constant.SH_SIZE.html index eafd414..f677da9 100644 --- a/deaf/common/ranges/constant.SH_SIZE.html +++ b/deaf/common/ranges/constant.SH_SIZE.html @@ -1 +1 @@ -SH_SIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_SIZE

source ·
pub const SH_SIZE: Ranges;
\ No newline at end of file +SH_SIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_SIZE

source ·
pub const SH_SIZE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SH_TYPE.html b/deaf/common/ranges/constant.SH_TYPE.html index 9d1edda..9b99f38 100644 --- a/deaf/common/ranges/constant.SH_TYPE.html +++ b/deaf/common/ranges/constant.SH_TYPE.html @@ -1 +1 @@ -SH_TYPE in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_TYPE

source ·
pub const SH_TYPE: Ranges;
\ No newline at end of file +SH_TYPE in deaf::common::ranges - Rust

Constant deaf::common::ranges::SH_TYPE

source ·
pub const SH_TYPE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.ST_INFO.html b/deaf/common/ranges/constant.ST_INFO.html index 070bbd4..9d60f19 100644 --- a/deaf/common/ranges/constant.ST_INFO.html +++ b/deaf/common/ranges/constant.ST_INFO.html @@ -1 +1 @@ -ST_INFO in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_INFO

source ·
pub const ST_INFO: Ranges;
\ No newline at end of file +ST_INFO in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_INFO

source ·
pub const ST_INFO: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.ST_NAME.html b/deaf/common/ranges/constant.ST_NAME.html index 1c4a7f0..9a35f5f 100644 --- a/deaf/common/ranges/constant.ST_NAME.html +++ b/deaf/common/ranges/constant.ST_NAME.html @@ -1 +1 @@ -ST_NAME in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_NAME

source ·
pub const ST_NAME: Ranges;
\ No newline at end of file +ST_NAME in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_NAME

source ·
pub const ST_NAME: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.ST_OTHER.html b/deaf/common/ranges/constant.ST_OTHER.html index 7ba68b9..e1bf2d7 100644 --- a/deaf/common/ranges/constant.ST_OTHER.html +++ b/deaf/common/ranges/constant.ST_OTHER.html @@ -1 +1 @@ -ST_OTHER in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_OTHER

source ·
pub const ST_OTHER: Ranges;
\ No newline at end of file +ST_OTHER in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_OTHER

source ·
pub const ST_OTHER: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.ST_SHNDX.html b/deaf/common/ranges/constant.ST_SHNDX.html index 5f96e61..b627e9c 100644 --- a/deaf/common/ranges/constant.ST_SHNDX.html +++ b/deaf/common/ranges/constant.ST_SHNDX.html @@ -1 +1 @@ -ST_SHNDX in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_SHNDX

source ·
pub const ST_SHNDX: Ranges;
\ No newline at end of file +ST_SHNDX in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_SHNDX

source ·
pub const ST_SHNDX: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.ST_SIZE.html b/deaf/common/ranges/constant.ST_SIZE.html index 9359129..a5aeac9 100644 --- a/deaf/common/ranges/constant.ST_SIZE.html +++ b/deaf/common/ranges/constant.ST_SIZE.html @@ -1 +1 @@ -ST_SIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_SIZE

source ·
pub const ST_SIZE: Ranges;
\ No newline at end of file +ST_SIZE in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_SIZE

source ·
pub const ST_SIZE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.ST_VALUE.html b/deaf/common/ranges/constant.ST_VALUE.html index e5cb8aa..0d953b6 100644 --- a/deaf/common/ranges/constant.ST_VALUE.html +++ b/deaf/common/ranges/constant.ST_VALUE.html @@ -1 +1 @@ -ST_VALUE in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_VALUE

source ·
pub const ST_VALUE: Ranges;
\ No newline at end of file +ST_VALUE in deaf::common::ranges - Rust

Constant deaf::common::ranges::ST_VALUE

source ·
pub const ST_VALUE: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.SYMOFFSET.html b/deaf/common/ranges/constant.SYMOFFSET.html index e2f5d51..eeb95f5 100644 --- a/deaf/common/ranges/constant.SYMOFFSET.html +++ b/deaf/common/ranges/constant.SYMOFFSET.html @@ -1 +1 @@ -SYMOFFSET in deaf::common::ranges - Rust

Constant deaf::common::ranges::SYMOFFSET

source ·
pub const SYMOFFSET: Ranges;
\ No newline at end of file +SYMOFFSET in deaf::common::ranges - Rust

Constant deaf::common::ranges::SYMOFFSET

source ·
pub const SYMOFFSET: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.VALUE4.html b/deaf/common/ranges/constant.VALUE4.html index 24ac5d1..13a9c13 100644 --- a/deaf/common/ranges/constant.VALUE4.html +++ b/deaf/common/ranges/constant.VALUE4.html @@ -1 +1 @@ -VALUE4 in deaf::common::ranges - Rust

Constant deaf::common::ranges::VALUE4

source ·
pub const VALUE4: Ranges;
\ No newline at end of file +VALUE4 in deaf::common::ranges - Rust

Constant deaf::common::ranges::VALUE4

source ·
pub const VALUE4: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/constant.VALUE8.html b/deaf/common/ranges/constant.VALUE8.html index bef87a4..719b274 100644 --- a/deaf/common/ranges/constant.VALUE8.html +++ b/deaf/common/ranges/constant.VALUE8.html @@ -1 +1 @@ -VALUE8 in deaf::common::ranges - Rust

Constant deaf::common::ranges::VALUE8

source ·
pub const VALUE8: Ranges;
\ No newline at end of file +VALUE8 in deaf::common::ranges - Rust

Constant deaf::common::ranges::VALUE8

source ·
pub const VALUE8: Ranges;
\ No newline at end of file diff --git a/deaf/common/ranges/index.html b/deaf/common/ranges/index.html index 5fae66c..2ff3620 100644 --- a/deaf/common/ranges/index.html +++ b/deaf/common/ranges/index.html @@ -1,2 +1,2 @@ -deaf::common::ranges - Rust

Module deaf::common::ranges

source ·

Structs

source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/sidebar-items.js b/deaf/common/sidebar-items.js index 11aa7d1..c6e5c66 100644 --- a/deaf/common/sidebar-items.js +++ b/deaf/common/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["ByteDelimiter","Layout","PHType","SHFlags","SHType","STBind","STType","SectionType","Width"],"mod":["ranges"],"struct":["All","ByteIter","Field","Item","ItemArray","Update"],"trait":["Convert","FromBytes","IntoBytes","T32Value","T64Value","TOutValue","Updateable"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["ByteDelimiter","Layout","PHType","SHFlags","SHType","STBind","STType","STVisibility","SectionType","Width"],"mod":["ranges"],"struct":["All","ByteIter","Field","Item","ItemArray","Update"],"trait":["Convert","FromBytes","IntoBytes","T32Value","T64Value","TOutValue","Updateable"]}; \ No newline at end of file diff --git a/deaf/common/struct.All.html b/deaf/common/struct.All.html index a66a17f..6357301 100644 --- a/deaf/common/struct.All.html +++ b/deaf/common/struct.All.html @@ -1,12 +1,12 @@ -All in deaf::common - Rust

Struct deaf::common::All

source ·
pub struct All {}
Expand description

Placeholder target for Update

-

Auto Trait Implementations§

§

impl RefUnwindSafe for All

§

impl Send for All

§

impl Sync for All

§

impl Unpin for All

§

impl UnwindSafe for All

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+All in deaf::common - Rust

Struct deaf::common::All

source ·
pub struct All {}
Expand description

Placeholder target for Update

+

Auto Trait Implementations§

§

impl RefUnwindSafe for All

§

impl Send for All

§

impl Sync for All

§

impl Unpin for All

§

impl UnwindSafe for All

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/struct.ByteIter.html b/deaf/common/struct.ByteIter.html index 5a4978c..1c40280 100644 --- a/deaf/common/struct.ByteIter.html +++ b/deaf/common/struct.ByteIter.html @@ -1,196 +1,196 @@ -ByteIter in deaf::common - Rust

Struct deaf::common::ByteIter

source ·
pub struct ByteIter<'a> { /* private fields */ }
Expand description

An iterator that uses a delimiting value or length to +ByteIter in deaf::common - Rust

Struct deaf::common::ByteIter

source ·
pub struct ByteIter<'a> { /* private fields */ }
Expand description

An iterator that uses a delimiting value or length to convert a byte buffer into a series of slices.

-

Implementations§

source§

impl<'a> ByteIter<'a>

source

pub fn new(data: &'a [u8], delim: ByteDelimiter) -> Self

Create a new byte iterator with data and a delimiter

+

Implementations§

source§

impl<'a> ByteIter<'a>

source

pub fn new(data: &'a [u8], delim: ByteDelimiter) -> Self

Create a new byte iterator with data and a delimiter

if you want to limit the max length, slice the data before iteration

-
source

pub fn value(data: &'a [u8], value: u8) -> Self

Create a new iterator with a value delimiter

-
source

pub fn length(data: &'a [u8], length: usize) -> Self

Create a new iterator with a length delimiter

-
source

pub fn offset(self, offset: usize) -> Self

Skip directly to an offset in the data

+
source

pub fn value(data: &'a [u8], value: u8) -> Self

Create a new iterator with a value delimiter

+
source

pub fn length(data: &'a [u8], length: usize) -> Self

Create a new iterator with a length delimiter

+
source

pub fn offset(self, offset: usize) -> Self

Skip directly to an offset in the data

source

pub fn try_offset<T>(self, offset: T) -> Result<Self>where - T: TryInto<usize>, - Error: From<<T as TryInto<usize>>::Error>,

Skip directly to an offset in the data

-

Trait Implementations§

source§

impl<'a> Iterator for ByteIter<'a>

§

type Item = &'a [u8]

The type of the elements being iterated over.
source§

fn next(&mut self) -> Option<Self::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( + T: TryInto<usize>, + Error: From<<T as TryInto<usize>>::Error>,

Skip directly to an offset in the data

+

Trait Implementations§

source§

impl<'a> Iterator for ByteIter<'a>

§

type Item = &'a [u8]

The type of the elements being iterated over.
source§

fn next(&mut self) -> Option<Self::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( &mut self -) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where - Self: Sized,

🔬This is a nightly-only experimental API. (iter_next_chunk)
Advances the iterator and returns an array containing the next N values. Read more
1.0.0 · source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · source§

fn count(self) -> usizewhere - Self: Sized,

Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 · source§

fn last(self) -> Option<Self::Item>where - Self: Sized,

Consumes the iterator, returning the last element. Read more
source§

fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>

🔬This is a nightly-only experimental API. (iter_advance_by)
Advances the iterator by n elements. Read more
1.0.0 · source§

fn nth(&mut self, n: usize) -> Option<Self::Item>

Returns the nth element of the iterator. Read more
1.28.0 · source§

fn step_by(self, step: usize) -> StepBy<Self>where - Self: Sized,

Creates an iterator starting at the same point, but stepping by -the given amount at each iteration. Read more
1.0.0 · source§

fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>where - Self: Sized, - U: IntoIterator<Item = Self::Item>,

Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 · source§

fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where - Self: Sized, - U: IntoIterator,

‘Zips up’ two iterators into a single iterator of pairs. Read more
source§

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>where - Self: Sized, - G: FnMut() -> Self::Item,

🔬This is a nightly-only experimental API. (iter_intersperse)
Creates a new iterator which places an item generated by separator -between adjacent items of the original iterator. Read more
1.0.0 · source§

fn map<B, F>(self, f: F) -> Map<Self, F>where - Self: Sized, - F: FnMut(Self::Item) -> B,

Takes a closure and creates an iterator which calls that closure on each -element. Read more
1.21.0 · source§

fn for_each<F>(self, f: F)where - Self: Sized, - F: FnMut(Self::Item),

Calls a closure on each element of an iterator. Read more
1.0.0 · source§

fn filter<P>(self, predicate: P) -> Filter<Self, P>where - Self: Sized, - P: FnMut(&Self::Item) -> bool,

Creates an iterator which uses a closure to determine if an element -should be yielded. Read more
1.0.0 · source§

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>where - Self: Sized, - F: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both filters and maps. Read more
1.0.0 · source§

fn enumerate(self) -> Enumerate<Self>where - Self: Sized,

Creates an iterator which gives the current iteration count as well as -the next value. Read more
1.0.0 · source§

fn peekable(self) -> Peekable<Self>where - Self: Sized,

Creates an iterator which can use the peek and peek_mut methods +) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where + Self: Sized,
🔬This is a nightly-only experimental API. (iter_next_chunk)
Advances the iterator and returns an array containing the next N values. Read more
1.0.0 · source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · source§

fn count(self) -> usizewhere + Self: Sized,

Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 · source§

fn last(self) -> Option<Self::Item>where + Self: Sized,

Consumes the iterator, returning the last element. Read more
source§

fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>

🔬This is a nightly-only experimental API. (iter_advance_by)
Advances the iterator by n elements. Read more
1.0.0 · source§

fn nth(&mut self, n: usize) -> Option<Self::Item>

Returns the nth element of the iterator. Read more
1.28.0 · source§

fn step_by(self, step: usize) -> StepBy<Self>where + Self: Sized,

Creates an iterator starting at the same point, but stepping by +the given amount at each iteration. Read more
1.0.0 · source§

fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>where + Self: Sized, + U: IntoIterator<Item = Self::Item>,

Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 · source§

fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where + Self: Sized, + U: IntoIterator,

‘Zips up’ two iterators into a single iterator of pairs. Read more
source§

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>where + Self: Sized, + G: FnMut() -> Self::Item,

🔬This is a nightly-only experimental API. (iter_intersperse)
Creates a new iterator which places an item generated by separator +between adjacent items of the original iterator. Read more
1.0.0 · source§

fn map<B, F>(self, f: F) -> Map<Self, F>where + Self: Sized, + F: FnMut(Self::Item) -> B,

Takes a closure and creates an iterator which calls that closure on each +element. Read more
1.21.0 · source§

fn for_each<F>(self, f: F)where + Self: Sized, + F: FnMut(Self::Item),

Calls a closure on each element of an iterator. Read more
1.0.0 · source§

fn filter<P>(self, predicate: P) -> Filter<Self, P>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

Creates an iterator which uses a closure to determine if an element +should be yielded. Read more
1.0.0 · source§

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>where + Self: Sized, + F: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both filters and maps. Read more
1.0.0 · source§

fn enumerate(self) -> Enumerate<Self>where + Self: Sized,

Creates an iterator which gives the current iteration count as well as +the next value. Read more
1.0.0 · source§

fn peekable(self) -> Peekable<Self>where + Self: Sized,

Creates an iterator which can use the peek and peek_mut methods to look at the next element of the iterator without consuming it. See -their documentation for more information. Read more
1.0.0 · source§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>where - Self: Sized, - P: FnMut(&Self::Item) -> bool,

Creates an iterator that skips elements based on a predicate. Read more
1.0.0 · source§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>where - Self: Sized, - P: FnMut(&Self::Item) -> bool,

Creates an iterator that yields elements based on a predicate. Read more
1.57.0 · source§

fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>where - Self: Sized, - P: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · source§

fn skip(self, n: usize) -> Skip<Self>where - Self: Sized,

Creates an iterator that skips the first n elements. Read more
1.0.0 · source§

fn take(self, n: usize) -> Take<Self>where - Self: Sized,

Creates an iterator that yields the first n elements, or fewer -if the underlying iterator ends sooner. Read more
1.0.0 · source§

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>where - Self: Sized, - F: FnMut(&mut St, Self::Item) -> Option<B>,

An iterator adapter which, like fold, holds internal state, but -unlike fold, produces a new iterator. Read more
1.0.0 · source§

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>where - Self: Sized, - U: IntoIterator, - F: FnMut(Self::Item) -> U,

Creates an iterator that works like map, but flattens nested structure. Read more
1.0.0 · source§

fn fuse(self) -> Fuse<Self>where - Self: Sized,

Creates an iterator which ends after the first None. Read more
1.0.0 · source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>where - Self: Sized, - F: FnMut(&Self::Item),

Does something with each element of an iterator, passing the value on. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Selfwhere - Self: Sized,

Borrows an iterator, rather than consuming it. Read more
1.0.0 · source§

fn collect<B>(self) -> Bwhere - B: FromIterator<Self::Item>, - Self: Sized,

Transforms an iterator into a collection. Read more
source§

fn collect_into<E>(self, collection: &mut E) -> &mut Ewhere - E: Extend<Self::Item>, - Self: Sized,

🔬This is a nightly-only experimental API. (iter_collect_into)
Collects all the items from an iterator into a collection. Read more
1.0.0 · source§

fn partition<B, F>(self, f: F) -> (B, B)where - Self: Sized, - B: Default + Extend<Self::Item>, - F: FnMut(&Self::Item) -> bool,

Consumes an iterator, creating two collections from it. Read more
source§

fn is_partitioned<P>(self, predicate: P) -> boolwhere - Self: Sized, - P: FnMut(Self::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_is_partitioned)
Checks if the elements of this iterator are partitioned according to the given predicate, -such that all those that return true precede all those that return false. Read more
1.27.0 · source§

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere - Self: Sized, - F: FnMut(B, Self::Item) -> R, - R: Try<Output = B>,

An iterator method that applies a function as long as it returns -successfully, producing a single, final value. Read more
1.27.0 · source§

fn try_for_each<F, R>(&mut self, f: F) -> Rwhere - Self: Sized, - F: FnMut(Self::Item) -> R, - R: Try<Output = ()>,

An iterator method that applies a fallible function to each item in the -iterator, stopping at the first error and returning that error. Read more
1.0.0 · source§

fn fold<B, F>(self, init: B, f: F) -> Bwhere - Self: Sized, - F: FnMut(B, Self::Item) -> B,

Folds every element into an accumulator by applying an operation, -returning the final result. Read more
1.51.0 · source§

fn reduce<F>(self, f: F) -> Option<Self::Item>where - Self: Sized, - F: FnMut(Self::Item, Self::Item) -> Self::Item,

Reduces the elements to a single one, by repeatedly applying a reducing -operation. Read more
source§

fn try_reduce<F, R>( +their documentation for more information. Read more

1.0.0 · source§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

Creates an iterator that skips elements based on a predicate. Read more
1.0.0 · source§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

Creates an iterator that yields elements based on a predicate. Read more
1.57.0 · source§

fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>where + Self: Sized, + P: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · source§

fn skip(self, n: usize) -> Skip<Self>where + Self: Sized,

Creates an iterator that skips the first n elements. Read more
1.0.0 · source§

fn take(self, n: usize) -> Take<Self>where + Self: Sized,

Creates an iterator that yields the first n elements, or fewer +if the underlying iterator ends sooner. Read more
1.0.0 · source§

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>where + Self: Sized, + F: FnMut(&mut St, Self::Item) -> Option<B>,

An iterator adapter which, like fold, holds internal state, but +unlike fold, produces a new iterator. Read more
1.0.0 · source§

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>where + Self: Sized, + U: IntoIterator, + F: FnMut(Self::Item) -> U,

Creates an iterator that works like map, but flattens nested structure. Read more
1.0.0 · source§

fn fuse(self) -> Fuse<Self>where + Self: Sized,

Creates an iterator which ends after the first None. Read more
1.0.0 · source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>where + Self: Sized, + F: FnMut(&Self::Item),

Does something with each element of an iterator, passing the value on. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Selfwhere + Self: Sized,

Borrows an iterator, rather than consuming it. Read more
1.0.0 · source§

fn collect<B>(self) -> Bwhere + B: FromIterator<Self::Item>, + Self: Sized,

Transforms an iterator into a collection. Read more
source§

fn collect_into<E>(self, collection: &mut E) -> &mut Ewhere + E: Extend<Self::Item>, + Self: Sized,

🔬This is a nightly-only experimental API. (iter_collect_into)
Collects all the items from an iterator into a collection. Read more
1.0.0 · source§

fn partition<B, F>(self, f: F) -> (B, B)where + Self: Sized, + B: Default + Extend<Self::Item>, + F: FnMut(&Self::Item) -> bool,

Consumes an iterator, creating two collections from it. Read more
source§

fn is_partitioned<P>(self, predicate: P) -> boolwhere + Self: Sized, + P: FnMut(Self::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_is_partitioned)
Checks if the elements of this iterator are partitioned according to the given predicate, +such that all those that return true precede all those that return false. Read more
1.27.0 · source§

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere + Self: Sized, + F: FnMut(B, Self::Item) -> R, + R: Try<Output = B>,

An iterator method that applies a function as long as it returns +successfully, producing a single, final value. Read more
1.27.0 · source§

fn try_for_each<F, R>(&mut self, f: F) -> Rwhere + Self: Sized, + F: FnMut(Self::Item) -> R, + R: Try<Output = ()>,

An iterator method that applies a fallible function to each item in the +iterator, stopping at the first error and returning that error. Read more
1.0.0 · source§

fn fold<B, F>(self, init: B, f: F) -> Bwhere + Self: Sized, + F: FnMut(B, Self::Item) -> B,

Folds every element into an accumulator by applying an operation, +returning the final result. Read more
1.51.0 · source§

fn reduce<F>(self, f: F) -> Option<Self::Item>where + Self: Sized, + F: FnMut(Self::Item, Self::Item) -> Self::Item,

Reduces the elements to a single one, by repeatedly applying a reducing +operation. Read more
source§

fn try_reduce<F, R>( &mut self, f: F -) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere - Self: Sized, - F: FnMut(Self::Item, Self::Item) -> R, - R: Try<Output = Self::Item>, - <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (iterator_try_reduce)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the -closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 · source§

fn all<F>(&mut self, f: F) -> boolwhere - Self: Sized, - F: FnMut(Self::Item) -> bool,

Tests if every element of the iterator matches a predicate. Read more
1.0.0 · source§

fn any<F>(&mut self, f: F) -> boolwhere - Self: Sized, - F: FnMut(Self::Item) -> bool,

Tests if any element of the iterator matches a predicate. Read more
1.0.0 · source§

fn find<P>(&mut self, predicate: P) -> Option<Self::Item>where - Self: Sized, - P: FnMut(&Self::Item) -> bool,

Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 · source§

fn find_map<B, F>(&mut self, f: F) -> Option<B>where - Self: Sized, - F: FnMut(Self::Item) -> Option<B>,

Applies function to the elements of iterator and returns -the first non-none result. Read more
source§

fn try_find<F, R>( +) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere + Self: Sized, + F: FnMut(Self::Item, Self::Item) -> R, + R: Try<Output = Self::Item>, + <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (iterator_try_reduce)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the +closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 · source§

fn all<F>(&mut self, f: F) -> boolwhere + Self: Sized, + F: FnMut(Self::Item) -> bool,

Tests if every element of the iterator matches a predicate. Read more
1.0.0 · source§

fn any<F>(&mut self, f: F) -> boolwhere + Self: Sized, + F: FnMut(Self::Item) -> bool,

Tests if any element of the iterator matches a predicate. Read more
1.0.0 · source§

fn find<P>(&mut self, predicate: P) -> Option<Self::Item>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 · source§

fn find_map<B, F>(&mut self, f: F) -> Option<B>where + Self: Sized, + F: FnMut(Self::Item) -> Option<B>,

Applies function to the elements of iterator and returns +the first non-none result. Read more
source§

fn try_find<F, R>( &mut self, f: F -) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere - Self: Sized, - F: FnMut(&Self::Item) -> R, - R: Try<Output = bool>, - <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (try_find)
Applies function to the elements of iterator and returns -the first true result or the first error. Read more
1.0.0 · source§

fn position<P>(&mut self, predicate: P) -> Option<usize>where - Self: Sized, - P: FnMut(Self::Item) -> bool,

Searches for an element in an iterator, returning its index. Read more
1.6.0 · source§

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where - B: Ord, - Self: Sized, - F: FnMut(&Self::Item) -> B,

Returns the element that gives the maximum value from the -specified function. Read more
1.15.0 · source§

fn max_by<F>(self, compare: F) -> Option<Self::Item>where - Self: Sized, - F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the maximum value with respect to the -specified comparison function. Read more
1.6.0 · source§

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where - B: Ord, - Self: Sized, - F: FnMut(&Self::Item) -> B,

Returns the element that gives the minimum value from the -specified function. Read more
1.15.0 · source§

fn min_by<F>(self, compare: F) -> Option<Self::Item>where - Self: Sized, - F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the minimum value with respect to the -specified comparison function. Read more
1.0.0 · source§

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where - FromA: Default + Extend<A>, - FromB: Default + Extend<B>, - Self: Sized + Iterator<Item = (A, B)>,

Converts an iterator of pairs into a pair of containers. Read more
1.36.0 · source§

fn copied<'a, T>(self) -> Copied<Self>where - T: 'a + Copy, - Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which copies all of its elements. Read more
1.0.0 · source§

fn cloned<'a, T>(self) -> Cloned<Self>where - T: 'a + Clone, - Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which clones all of its elements. Read more
source§

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where - Self: Sized,

🔬This is a nightly-only experimental API. (iter_array_chunks)
Returns an iterator over N elements of the iterator at a time. Read more
1.11.0 · source§

fn sum<S>(self) -> Swhere - Self: Sized, - S: Sum<Self::Item>,

Sums the elements of an iterator. Read more
1.11.0 · source§

fn product<P>(self) -> Pwhere - Self: Sized, - P: Product<Self::Item>,

Iterates over the entire iterator, multiplying all the elements Read more
source§

fn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere - Self: Sized, - I: IntoIterator, - F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those -of another with respect to the specified comparison function. Read more
1.5.0 · source§

fn partial_cmp<I>(self, other: I) -> Option<Ordering>where - I: IntoIterator, - Self::Item: PartialOrd<<I as IntoIterator>::Item>, - Self: Sized,

Lexicographically compares the PartialOrd elements of -this Iterator with those of another. The comparison works like short-circuit +) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere + Self: Sized, + F: FnMut(&Self::Item) -> R, + R: Try<Output = bool>, + <R as Try>::Residual: Residual<Option<Self::Item>>,
🔬This is a nightly-only experimental API. (try_find)
Applies function to the elements of iterator and returns +the first true result or the first error. Read more
1.0.0 · source§

fn position<P>(&mut self, predicate: P) -> Option<usize>where + Self: Sized, + P: FnMut(Self::Item) -> bool,

Searches for an element in an iterator, returning its index. Read more
1.6.0 · source§

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where + B: Ord, + Self: Sized, + F: FnMut(&Self::Item) -> B,

Returns the element that gives the maximum value from the +specified function. Read more
1.15.0 · source§

fn max_by<F>(self, compare: F) -> Option<Self::Item>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the maximum value with respect to the +specified comparison function. Read more
1.6.0 · source§

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where + B: Ord, + Self: Sized, + F: FnMut(&Self::Item) -> B,

Returns the element that gives the minimum value from the +specified function. Read more
1.15.0 · source§

fn min_by<F>(self, compare: F) -> Option<Self::Item>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the minimum value with respect to the +specified comparison function. Read more
1.0.0 · source§

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where + FromA: Default + Extend<A>, + FromB: Default + Extend<B>, + Self: Sized + Iterator<Item = (A, B)>,

Converts an iterator of pairs into a pair of containers. Read more
1.36.0 · source§

fn copied<'a, T>(self) -> Copied<Self>where + T: 'a + Copy, + Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which copies all of its elements. Read more
1.0.0 · source§

fn cloned<'a, T>(self) -> Cloned<Self>where + T: 'a + Clone, + Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which clones all of its elements. Read more
source§

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where + Self: Sized,

🔬This is a nightly-only experimental API. (iter_array_chunks)
Returns an iterator over N elements of the iterator at a time. Read more
1.11.0 · source§

fn sum<S>(self) -> Swhere + Self: Sized, + S: Sum<Self::Item>,

Sums the elements of an iterator. Read more
1.11.0 · source§

fn product<P>(self) -> Pwhere + Self: Sized, + P: Product<Self::Item>,

Iterates over the entire iterator, multiplying all the elements Read more
source§

fn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere + Self: Sized, + I: IntoIterator, + F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those +of another with respect to the specified comparison function. Read more
1.5.0 · source§

fn partial_cmp<I>(self, other: I) -> Option<Ordering>where + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

Lexicographically compares the PartialOrd elements of +this Iterator with those of another. The comparison works like short-circuit evaluation, returning a result without comparing the remaining elements. -As soon as an order can be determined, the evaluation stops and a result is returned. Read more
source§

fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where - Self: Sized, - I: IntoIterator, - F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those -of another with respect to the specified comparison function. Read more
1.5.0 · source§

fn eq<I>(self, other: I) -> boolwhere - I: IntoIterator, - Self::Item: PartialEq<<I as IntoIterator>::Item>, - Self: Sized,

Determines if the elements of this Iterator are equal to those of -another. Read more
source§

fn eq_by<I, F>(self, other: I, eq: F) -> boolwhere - Self: Sized, - I: IntoIterator, - F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_order_by)
Determines if the elements of this Iterator are equal to those of -another with respect to the specified equality function. Read more
1.5.0 · source§

fn ne<I>(self, other: I) -> boolwhere - I: IntoIterator, - Self::Item: PartialEq<<I as IntoIterator>::Item>, - Self: Sized,

Determines if the elements of this Iterator are not equal to those of -another. Read more
1.5.0 · source§

fn lt<I>(self, other: I) -> boolwhere - I: IntoIterator, - Self::Item: PartialOrd<<I as IntoIterator>::Item>, - Self: Sized,

Determines if the elements of this Iterator are lexicographically -less than those of another. Read more
1.5.0 · source§

fn le<I>(self, other: I) -> boolwhere - I: IntoIterator, - Self::Item: PartialOrd<<I as IntoIterator>::Item>, - Self: Sized,

Determines if the elements of this Iterator are lexicographically -less or equal to those of another. Read more
1.5.0 · source§

fn gt<I>(self, other: I) -> boolwhere - I: IntoIterator, - Self::Item: PartialOrd<<I as IntoIterator>::Item>, - Self: Sized,

Determines if the elements of this Iterator are lexicographically -greater than those of another. Read more
1.5.0 · source§

fn ge<I>(self, other: I) -> boolwhere - I: IntoIterator, - Self::Item: PartialOrd<<I as IntoIterator>::Item>, - Self: Sized,

Determines if the elements of this Iterator are lexicographically -greater than or equal to those of another. Read more
source§

fn is_sorted_by<F>(self, compare: F) -> boolwhere - Self: Sized, - F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given comparator function. Read more
source§

fn is_sorted_by_key<F, K>(self, f: F) -> boolwhere - Self: Sized, - F: FnMut(Self::Item) -> K, - K: PartialOrd<K>,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given key extraction -function. Read more

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ByteIter<'a>

§

impl<'a> Send for ByteIter<'a>

§

impl<'a> Sync for ByteIter<'a>

§

impl<'a> Unpin for ByteIter<'a>

§

impl<'a> UnwindSafe for ByteIter<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+As soon as an order can be determined, the evaluation stops and a result is returned. Read more
source§

fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where + Self: Sized, + I: IntoIterator, + F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those +of another with respect to the specified comparison function. Read more
1.5.0 · source§

fn eq<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialEq<<I as IntoIterator>::Item>, + Self: Sized,

Determines if the elements of this Iterator are equal to those of +another. Read more
source§

fn eq_by<I, F>(self, other: I, eq: F) -> boolwhere + Self: Sized, + I: IntoIterator, + F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_order_by)
Determines if the elements of this Iterator are equal to those of +another with respect to the specified equality function. Read more
1.5.0 · source§

fn ne<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialEq<<I as IntoIterator>::Item>, + Self: Sized,

Determines if the elements of this Iterator are not equal to those of +another. Read more
1.5.0 · source§

fn lt<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

Determines if the elements of this Iterator are lexicographically +less than those of another. Read more
1.5.0 · source§

fn le<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

Determines if the elements of this Iterator are lexicographically +less or equal to those of another. Read more
1.5.0 · source§

fn gt<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

Determines if the elements of this Iterator are lexicographically +greater than those of another. Read more
1.5.0 · source§

fn ge<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

Determines if the elements of this Iterator are lexicographically +greater than or equal to those of another. Read more
source§

fn is_sorted_by<F>(self, compare: F) -> boolwhere + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given comparator function. Read more
source§

fn is_sorted_by_key<F, K>(self, f: F) -> boolwhere + Self: Sized, + F: FnMut(Self::Item) -> K, + K: PartialOrd<K>,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given key extraction +function. Read more

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ByteIter<'a>

§

impl<'a> Send for ByteIter<'a>

§

impl<'a> Sync for ByteIter<'a>

§

impl<'a> Unpin for ByteIter<'a>

§

impl<'a> UnwindSafe for ByteIter<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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<I> IntoIterator for Iwhere - I: Iterator,

§

type Item = <I as Iterator>::Item

The type of the elements being iterated over.
§

type IntoIter = I

Which kind of iterator are we turning this into?
const: unstable · source§

fn into_iter(self) -> I

Creates an iterator from a value. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<I> IntoIterator for Iwhere + I: Iterator,

§

type Item = <I as Iterator>::Item

The type of the elements being iterated over.
§

type IntoIter = I

Which kind of iterator are we turning this into?
const: unstable · source§

fn into_iter(self) -> I

Creates an iterator from a value. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/struct.Field.html b/deaf/common/struct.Field.html index 889f013..ee9b1b1 100644 --- a/deaf/common/struct.Field.html +++ b/deaf/common/struct.Field.html @@ -1,14 +1,14 @@ -Field in deaf::common - Rust

Struct deaf::common::Field

source ·
pub struct Field<T32 = u8, T64 = T32, Out = T64>where
+Field in deaf::common - Rust

Struct deaf::common::Field

source ·
pub struct Field<T32 = u8, T64 = T32, Out = T64>where
     T32: FromBytes + IntoBytes + Convert<Out>,
     T64: FromBytes + IntoBytes + Convert<Out>,
-    Out: Convert<T32> + Convert<T64> + Debug,{ /* private fields */ }
Expand description

A single field in a section, table item etc.

+ Out: Convert<T32> + Convert<T64> + Debug,{ /* private fields */ }
Expand description

A single field in a section, table item etc.

Internally maintains ranges for various widths (32- or 64-bit) and layout (little- or big-endian) and allows bytes to be read as values or values to be written to a byte buffer.

Implementations§

source§

impl<T32, T64, Out> Field<T32, T64, Out>where T32: FromBytes + IntoBytes + Convert<Out>, T64: FromBytes + IntoBytes + Convert<Out>, - Out: Convert<T32> + Convert<T64> + Debug,

source

pub const fn new(ranges: Ranges) -> Self

Create a new field from given ranges

+ Out: Convert<T32> + Convert<T64> + Debug,
source

pub const fn new(ranges: Ranges) -> Self

Create a new field from given ranges

source

pub const fn empty() -> Self

Create a new field with an empty range

source

pub const fn with_width(self, width: Width) -> Self

Builder method to set the width of the field

source

pub const fn with_layout(self, layout: Layout) -> Self

Builder method to set the layout of the field

@@ -16,41 +16,41 @@
source

pub fn set_width(&mut self, width: Width)

Set the width of the field

source

pub fn layout(&self) -> Layout

Get the layout of the field

source

pub fn set_layout(&mut self, layout: Layout)

Set the layout of the field

-
source

pub fn set_offset(&mut self, offset: usize)

Set an offset in bytes to read at

-
source

pub fn set_index(&mut self, index: usize)

Set an index based on field size to read at

-
source

pub fn get(&self, bytes: &[u8]) -> Result<Out>

Read the buffer and convert into the output value

-
source

pub fn set(&self, bytes: &mut [u8], value: Out) -> Result<()>

Convert output value and write to the buffer

-
source

pub fn size(&self) -> usize

The expected size in bytes of the output/input buffers

-

Trait Implementations§

source§

impl<T32, T64, Out> Clone for Field<T32, T64, Out>where - T32: FromBytes + IntoBytes + Convert<Out> + Clone, - T64: FromBytes + IntoBytes + Convert<Out> + Clone, - Out: Convert<T32> + Convert<T64> + Debug + Clone,

source§

fn clone(&self) -> Field<T32, T64, Out>

Returns a copy 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<T32, T64, Out> Debug for Field<T32, T64, Out>where - T32: FromBytes + IntoBytes + Convert<Out> + Debug, - T64: FromBytes + IntoBytes + Convert<Out> + Debug, - Out: Convert<T32> + Convert<T64> + Debug + Debug,

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T32, T64, Out> RefUnwindSafe for Field<T32, T64, Out>where - Out: RefUnwindSafe, - T32: RefUnwindSafe, - T64: RefUnwindSafe,

§

impl<T32, T64, Out> Send for Field<T32, T64, Out>where - Out: Send, - T32: Send, - T64: Send,

§

impl<T32, T64, Out> Sync for Field<T32, T64, Out>where - Out: Sync, - T32: Sync, - T64: Sync,

§

impl<T32, T64, Out> Unpin for Field<T32, T64, Out>where - Out: Unpin, - T32: Unpin, - T64: Unpin,

§

impl<T32, T64, Out> UnwindSafe for Field<T32, T64, Out>where - Out: UnwindSafe, - T32: UnwindSafe, - T64: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn set_offset(&mut self, offset: usize)

Set an offset in bytes to read at

+
source

pub fn set_index(&mut self, index: usize)

Set an index based on field size to read at

+
source

pub fn get(&self, bytes: &[u8]) -> Result<Out>

Read the buffer and convert into the output value

+
source

pub fn set(&self, bytes: &mut [u8], value: Out) -> Result<()>

Convert output value and write to the buffer

+
source

pub fn size(&self) -> usize

The expected size in bytes of the output/input buffers

+

Trait Implementations§

source§

impl<T32, T64, Out> Clone for Field<T32, T64, Out>where + T32: FromBytes + IntoBytes + Convert<Out> + Clone, + T64: FromBytes + IntoBytes + Convert<Out> + Clone, + Out: Convert<T32> + Convert<T64> + Debug + Clone,

source§

fn clone(&self) -> Field<T32, T64, Out>

Returns a copy 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<T32, T64, Out> Debug for Field<T32, T64, Out>where + T32: FromBytes + IntoBytes + Convert<Out> + Debug, + T64: FromBytes + IntoBytes + Convert<Out> + Debug, + Out: Convert<T32> + Convert<T64> + Debug + Debug,

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T32, T64, Out> RefUnwindSafe for Field<T32, T64, Out>where + Out: RefUnwindSafe, + T32: RefUnwindSafe, + T64: RefUnwindSafe,

§

impl<T32, T64, Out> Send for Field<T32, T64, Out>where + Out: Send, + T32: Send, + T64: Send,

§

impl<T32, T64, Out> Sync for Field<T32, T64, Out>where + Out: Sync, + T32: Sync, + T64: Sync,

§

impl<T32, T64, Out> Unpin for Field<T32, T64, Out>where + Out: Unpin, + T32: Unpin, + T64: Unpin,

§

impl<T32, T64, Out> UnwindSafe for Field<T32, T64, Out>where + Out: UnwindSafe, + T32: UnwindSafe, + T64: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/struct.Item.html b/deaf/common/struct.Item.html index 198d19e..ee075e9 100644 --- a/deaf/common/struct.Item.html +++ b/deaf/common/struct.Item.html @@ -1,4 +1,4 @@ -Item in deaf::common - Rust

Struct deaf::common::Item

source ·
pub struct Item<T32 = u8, T64 = T32, Out = T64>where
+Item in deaf::common - Rust

Struct deaf::common::Item

source ·
pub struct Item<T32 = u8, T64 = T32, Out = T64>where
     T32: T32Value<Out>,
     T64: T64Value<Out>,
     Out: TOutValue<T32, T64>,{ /* private fields */ }
Expand description

An item in a section, table item etc that contains a field @@ -11,55 +11,55 @@

source

pub fn with_width(self, width: Width) -> Self

Builder method to set the initial width

source

pub fn with_layout(self, layout: Layout) -> Self

Builder method to set the initial layout

source

pub fn with_value(self, value: Out) -> Self

Builder method to set the initial value

-
source

pub fn with_offset(self, offset: usize) -> Self

Builder method to set an offset

-
source

pub fn with_index(self, index: usize) -> Self

Builder method to set an index

-
source

pub fn parse(self, bytes: &[u8]) -> Result<Self>

Builder method to parse a byte buffer

-
source

pub fn read(&mut self, bytes: &[u8]) -> Result<Out>

Read the value if possible

-
source

pub fn write(&self, bytes: &mut [u8]) -> Result<()>

Write the value if there is one

+
source

pub fn with_offset(self, offset: usize) -> Self

Builder method to set an offset

+
source

pub fn with_index(self, index: usize) -> Self

Builder method to set an index

+
source

pub fn parse(self, bytes: &[u8]) -> Result<Self>

Builder method to parse a byte buffer

+
source

pub fn read(&mut self, bytes: &[u8]) -> Result<Out>

Read the value if possible

+
source

pub fn write(&self, bytes: &mut [u8]) -> Result<()>

Write the value if there is one

source

pub fn get(&self) -> Out

Get the output value of the item

source

pub fn set(&mut self, value: Out)

Set the output value of the item

-
source

pub fn size(&self) -> usize

Get the size of the item if there is a value

+
source

pub fn size(&self) -> usize

Get the size of the item if there is a value

source

pub fn width(&self) -> Width

Get the width (32- or 64-bit) of the item

source

pub fn set_width(&mut self, width: Width)

Set the width (32- or 64-bit) of the item

source

pub fn layout(&self) -> Layout

Get the layout (little- or big-endian) of the item

source

pub fn set_layout(&mut self, layout: Layout)

Set the layout (little- or big-endian) of the item

-
source

pub fn set_offset(&mut self, offset: usize)

Set an offset in bytes to read at

-
source

pub fn set_index(&mut self, index: usize)

Set an index based on field size to read at

-

Trait Implementations§

source§

impl<T32, T64, Out> Clone for Item<T32, T64, Out>where - T32: T32Value<Out> + Clone, - T64: T64Value<Out> + Clone, - Out: TOutValue<T32, T64> + Clone,

source§

fn clone(&self) -> Item<T32, T64, Out>

Returns a copy 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<T32, T64, Out> Debug for Item<T32, T64, Out>where - T32: T32Value<Out> + Debug, - T64: T64Value<Out> + Debug, - Out: TOutValue<T32, T64> + Debug,

source§

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

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

impl<T32, T64, Out> PartialEq<Item<T32, T64, Out>> for Item<T32, T64, Out>where +

source

pub fn set_offset(&mut self, offset: usize)

Set an offset in bytes to read at

+
source

pub fn set_index(&mut self, index: usize)

Set an index based on field size to read at

+

Trait Implementations§

source§

impl<T32, T64, Out> Clone for Item<T32, T64, Out>where + T32: T32Value<Out> + Clone, + T64: T64Value<Out> + Clone, + Out: TOutValue<T32, T64> + Clone,

source§

fn clone(&self) -> Item<T32, T64, Out>

Returns a copy 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<T32, T64, Out> Debug for Item<T32, T64, Out>where + T32: T32Value<Out> + Debug, + T64: T64Value<Out> + Debug, + Out: TOutValue<T32, T64> + Debug,

source§

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

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

impl<T32, T64, Out> PartialEq<Item<T32, T64, Out>> for Item<T32, T64, Out>where T32: T32Value<Out>, T64: T64Value<Out>, - Out: TOutValue<T32, T64> + PartialEq,

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<T32, T64, Out> RefUnwindSafe for Item<T32, T64, Out>where - Out: RefUnwindSafe, - T32: RefUnwindSafe, - T64: RefUnwindSafe,

§

impl<T32, T64, Out> Send for Item<T32, T64, Out>where - Out: Send, - T32: Send, - T64: Send,

§

impl<T32, T64, Out> Sync for Item<T32, T64, Out>where - Out: Sync, - T32: Sync, - T64: Sync,

§

impl<T32, T64, Out> Unpin for Item<T32, T64, Out>where - Out: Unpin, - T32: Unpin, - T64: Unpin,

§

impl<T32, T64, Out> UnwindSafe for Item<T32, T64, Out>where - Out: UnwindSafe, - T32: UnwindSafe, - T64: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Out: TOutValue<T32, T64> + PartialEq,
source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<T32, T64, Out> RefUnwindSafe for Item<T32, T64, Out>where + Out: RefUnwindSafe, + T32: RefUnwindSafe, + T64: RefUnwindSafe,

§

impl<T32, T64, Out> Send for Item<T32, T64, Out>where + Out: Send, + T32: Send, + T64: Send,

§

impl<T32, T64, Out> Sync for Item<T32, T64, Out>where + Out: Sync, + T32: Sync, + T64: Sync,

§

impl<T32, T64, Out> Unpin for Item<T32, T64, Out>where + Out: Unpin, + T32: Unpin, + T64: Unpin,

§

impl<T32, T64, Out> UnwindSafe for Item<T32, T64, Out>where + Out: UnwindSafe, + T32: UnwindSafe, + T64: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/struct.ItemArray.html b/deaf/common/struct.ItemArray.html index 84ab337..995a8e7 100644 --- a/deaf/common/struct.ItemArray.html +++ b/deaf/common/struct.ItemArray.html @@ -1,4 +1,4 @@ -ItemArray in deaf::common - Rust

Struct deaf::common::ItemArray

source ·
pub struct ItemArray<T32, T64 = T32, Out = T64>where
+ItemArray in deaf::common - Rust

Struct deaf::common::ItemArray

source ·
pub struct ItemArray<T32, T64 = T32, Out = T64>where
     T32: T32Value<Out>,
     T64: T64Value<Out>,
     Out: TOutValue<T32, T64>,{ /* private fields */ }

Implementations§

source§

impl<T32, T64, Out> ItemArray<T32, T64, Out>where @@ -8,46 +8,46 @@

source

pub fn make(ranges: Ranges, width: Width, layout: Layout) -> Self

Create a new item array with given ranges, layout, and width

source

pub fn with_width(self, width: Width) -> Self

Builder method to set the initial width

source

pub fn with_layout(self, layout: Layout) -> Self

Builder method to set the initial layout

-
source

pub fn with_offset(self, offset: usize) -> Self

Builder method to add an array offset

-
source

pub fn with_last_offset(self, offset: usize) -> Self

Builder method to set the last offset for the array

-
source

pub fn iterator<'a>(&'a self, bytes: &'a [u8]) -> ByteIter<'_>

Get an iterator over slices of the data

-
source

pub fn read(&self, bytes: &[u8], index: usize) -> Result<Out>

Read a value at a particular index in the data

-
source

pub fn item_offset(&self, index: usize) -> usize

Get the offset of a particular index in the array

-
source

pub fn item_size(&self) -> usize

Get the size of the item for the current width

-
source

pub fn length(&self, count: usize) -> usize

Get the length of the array, given the item count

+
source

pub fn with_offset(self, offset: usize) -> Self

Builder method to add an array offset

+
source

pub fn with_last_offset(self, offset: usize) -> Self

Builder method to set the last offset for the array

+
source

pub fn iterator<'a>(&'a self, bytes: &'a [u8]) -> ByteIter<'_>

Get an iterator over slices of the data

+
source

pub fn read(&self, bytes: &[u8], index: usize) -> Result<Out>

Read a value at a particular index in the data

+
source

pub fn item_offset(&self, index: usize) -> usize

Get the offset of a particular index in the array

+
source

pub fn item_size(&self) -> usize

Get the size of the item for the current width

+
source

pub fn length(&self, count: usize) -> usize

Get the length of the array, given the item count

source

pub fn width(&self) -> Width

Get the width (32- or 64-bit) of the item

source

pub fn set_width(&mut self, width: Width)

Set the width (32- or 64-bit) of the item

source

pub fn layout(&self) -> Layout

Get the layout (little- or big-endian) of the item

source

pub fn set_layout(&mut self, layout: Layout)

Set the layout (little- or big-endian) of the item

-
source

pub fn offset(&self) -> usize

Get the total offset at which the array will read

-
source

pub fn add_offset(&mut self, offset: usize)

Set the offset of the array in the parsed data

-

Trait Implementations§

source§

impl<T32, T64, Out> Clone for ItemArray<T32, T64, Out>where - T32: T32Value<Out> + Clone, - T64: T64Value<Out> + Clone, - Out: TOutValue<T32, T64> + Clone,

source§

fn clone(&self) -> ItemArray<T32, T64, Out>

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<T32, T64, Out> RefUnwindSafe for ItemArray<T32, T64, Out>where - Out: RefUnwindSafe, - T32: RefUnwindSafe, - T64: RefUnwindSafe,

§

impl<T32, T64, Out> Send for ItemArray<T32, T64, Out>where - Out: Send, - T32: Send, - T64: Send,

§

impl<T32, T64, Out> Sync for ItemArray<T32, T64, Out>where - Out: Sync, - T32: Sync, - T64: Sync,

§

impl<T32, T64, Out> Unpin for ItemArray<T32, T64, Out>where - Out: Unpin, - T32: Unpin, - T64: Unpin,

§

impl<T32, T64, Out> UnwindSafe for ItemArray<T32, T64, Out>where - Out: UnwindSafe, - T32: UnwindSafe, - T64: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn offset(&self) -> usize

Get the total offset at which the array will read

+
source

pub fn add_offset(&mut self, offset: usize)

Set the offset of the array in the parsed data

+

Trait Implementations§

source§

impl<T32, T64, Out> Clone for ItemArray<T32, T64, Out>where + T32: T32Value<Out> + Clone, + T64: T64Value<Out> + Clone, + Out: TOutValue<T32, T64> + Clone,

source§

fn clone(&self) -> ItemArray<T32, T64, Out>

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<T32, T64, Out> RefUnwindSafe for ItemArray<T32, T64, Out>where + Out: RefUnwindSafe, + T32: RefUnwindSafe, + T64: RefUnwindSafe,

§

impl<T32, T64, Out> Send for ItemArray<T32, T64, Out>where + Out: Send, + T32: Send, + T64: Send,

§

impl<T32, T64, Out> Sync for ItemArray<T32, T64, Out>where + Out: Sync, + T32: Sync, + T64: Sync,

§

impl<T32, T64, Out> Unpin for ItemArray<T32, T64, Out>where + Out: Unpin, + T32: Unpin, + T64: Unpin,

§

impl<T32, T64, Out> UnwindSafe for ItemArray<T32, T64, Out>where + Out: UnwindSafe, + T32: UnwindSafe, + T64: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/struct.Update.html b/deaf/common/struct.Update.html index 0748952..bcce6f3 100644 --- a/deaf/common/struct.Update.html +++ b/deaf/common/struct.Update.html @@ -1,17 +1,17 @@ -Update in deaf::common - Rust

Struct deaf::common::Update

source ·
pub struct Update<T: Send + Sync> { /* private fields */ }
Expand description

Update for an object of type T

-

Implementations§

source§

impl<T: Send + Sync + 'static> Update<T>

source

pub fn apply(target: &mut T)

Apply all updates for type T

-
source

pub fn add(change: impl Fn(&mut T) + Send + Sync + 'static)

Add a new update for type T

+Update in deaf::common - Rust

Struct deaf::common::Update

source ·
pub struct Update<T: Send + Sync> { /* private fields */ }
Expand description

Update for an object of type T

+

Implementations§

source§

impl<T: Send + Sync + 'static> Update<T>

source

pub fn apply(target: &mut T)

Apply all updates for type T

+
source

pub fn add(change: impl Fn(&mut T) + Send + Sync + 'static)

Add a new update for type T

source

pub fn clear()

Clear all updates of type T

-
source

pub fn count() -> usize

Count updates of type T

-

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for Update<T>

§

impl<T> Send for Update<T>

§

impl<T> Sync for Update<T>

§

impl<T> Unpin for Update<T>where - T: Unpin,

§

impl<T> !UnwindSafe for Update<T>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn count() -> usize

Count updates of type T

+

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for Update<T>

§

impl<T> Send for Update<T>

§

impl<T> Sync for Update<T>

§

impl<T> Unpin for Update<T>where + T: Unpin,

§

impl<T> !UnwindSafe for Update<T>

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/common/trait.Convert.html b/deaf/common/trait.Convert.html index 2fccda4..129e564 100644 --- a/deaf/common/trait.Convert.html +++ b/deaf/common/trait.Convert.html @@ -1,7 +1,7 @@ -Convert in deaf::common - Rust

Trait deaf::common::Convert

source ·
pub trait Convert<A> {
+Convert in deaf::common - Rust

Trait deaf::common::Convert

source ·
pub trait Convert<A> {
     // Required method
     fn convert(self) -> Result<A>
-       where A: Sized;
+       where A: Sized;
 }
Expand description

Convert a value into another value

Examples

let expected = Width::X64;
@@ -9,5 +9,5 @@ 

Examples

assert_eq!(found.unwrap(),expected);

Required Methods§

source

fn convert(self) -> Result<A>where - A: Sized,

Implementations on Foreign Types§

source§

impl Convert<i32> for i64

source§

impl Convert<u32> for usize

source§

impl Convert<BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>> for u64

source§

fn convert(self) -> Result<BitFlags<SHFlags>>

source§

impl Convert<Width> for u8

source§

impl Convert<usize> for u32

source§

impl Convert<u32> for u64

source§

impl Convert<usize> for u64

source§

impl Convert<u64> for u32

source§

impl Convert<u16> for u8

source§

impl Convert<BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>> for u32

source§

fn convert(self) -> Result<BitFlags<SHFlags>>

source§

impl Convert<PHType> for u32

source§

impl Convert<u64> for usize

source§

impl Convert<u8> for u16

source§

impl Convert<u16> for usize

source§

impl Convert<i64> for i32

source§

impl Convert<SymbolInfo> for u8

source§

impl Convert<u32> for BitFlags<SHFlags>

source§

impl Convert<Layout> for u8

source§

impl Convert<u64> for BitFlags<SHFlags>

source§

impl Convert<SHType> for u32

source§

impl Convert<RelocationInfo> for u64

source§

impl Convert<RelocationInfo> for u32

source§

impl Convert<usize> for u16

Implementors§

source§

impl Convert<u8> for Layout

source§

impl Convert<u8> for Width

source§

impl Convert<u8> for SymbolInfo

source§

impl Convert<u32> for PHType

source§

impl Convert<u32> for SHType

source§

impl Convert<u32> for RelocationInfo

source§

impl Convert<u64> for RelocationInfo

source§

impl<A> Convert<A> for A

Blanket implementation for NOP conversions to self

+ A: Sized,

Implementations on Foreign Types§

source§

impl Convert<u64> for u32

source§

impl Convert<Layout> for u8

source§

impl Convert<Width> for u8

source§

impl Convert<BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>> for u64

source§

fn convert(self) -> Result<BitFlags<SHFlags>>

source§

impl Convert<SHType> for u32

source§

impl Convert<usize> for u16

source§

impl Convert<usize> for u32

source§

impl Convert<u8> for u16

source§

impl Convert<u64> for BitFlags<SHFlags>

source§

impl Convert<u16> for usize

source§

impl Convert<u32> for u64

source§

impl Convert<usize> for u64

source§

impl Convert<u64> for usize

source§

impl Convert<u32> for usize

source§

impl Convert<i32> for i64

source§

impl Convert<RelocationInfo> for u32

source§

impl Convert<BitFlags<SHFlags, <SHFlags as RawBitFlags>::Numeric>> for u32

source§

fn convert(self) -> Result<BitFlags<SHFlags>>

source§

impl Convert<PHType> for u32

source§

impl Convert<i64> for i32

source§

impl Convert<u16> for u8

source§

impl Convert<u32> for BitFlags<SHFlags>

source§

impl Convert<RelocationInfo> for u64

Implementors§

source§

impl Convert<u8> for Layout

source§

impl Convert<u8> for Width

source§

impl Convert<u32> for PHType

source§

impl Convert<u32> for SHType

source§

impl Convert<u32> for RelocationInfo

source§

impl Convert<u64> for RelocationInfo

source§

impl<A> Convert<A> for A

Blanket implementation for NOP conversions to self

\ No newline at end of file diff --git a/deaf/common/trait.FromBytes.html b/deaf/common/trait.FromBytes.html index dec4a06..d4ad40e 100644 --- a/deaf/common/trait.FromBytes.html +++ b/deaf/common/trait.FromBytes.html @@ -1,7 +1,7 @@ -FromBytes in deaf::common - Rust

Trait deaf::common::FromBytes

source ·
pub trait FromBytes {
+FromBytes in deaf::common - Rust

Trait deaf::common::FromBytes

source ·
pub trait FromBytes {
     // Required method
-    fn from_bytes(bytes: &[u8], layout: Layout) -> Result<Self>
-       where Self: Sized;
+    fn from_bytes(bytes: &[u8], layout: Layout) -> Result<Self>
+       where Self: Sized;
 }
Expand description

Parse an object from bytes

Arguments

    @@ -19,5 +19,5 @@

    Examples

    ).unwrap(); assert_eq!(string,"ELF");
-

Required Methods§

source

fn from_bytes(bytes: &[u8], layout: Layout) -> Result<Self>where - Self: Sized,

Implementations on Foreign Types§

source§

impl FromBytes for i32

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for u64

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for [u8; 7]

source§

fn from_bytes(b: &[u8], _: Layout) -> Result<Self>

source§

impl FromBytes for u8

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for u16

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for CString

source§

fn from_bytes(b: &[u8], _: Layout) -> Result<Self>

source§

impl FromBytes for String

source§

fn from_bytes(b: &[u8], _: Layout) -> Result<Self>

source§

impl FromBytes for u32

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for i64

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

Implementors§

\ No newline at end of file +

Required Methods§

source

fn from_bytes(bytes: &[u8], layout: Layout) -> Result<Self>where + Self: Sized,

Implementations on Foreign Types§

source§

impl FromBytes for [u8; 7]

source§

fn from_bytes(b: &[u8], _: Layout) -> Result<Self>

source§

impl FromBytes for String

source§

fn from_bytes(b: &[u8], _: Layout) -> Result<Self>

source§

impl FromBytes for i32

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for i64

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for CString

source§

fn from_bytes(b: &[u8], _: Layout) -> Result<Self>

source§

impl FromBytes for u64

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for u32

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for u8

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

source§

impl FromBytes for u16

source§

fn from_bytes(b: &[u8], l: Layout) -> Result<Self>

Implementors§

\ No newline at end of file diff --git a/deaf/common/trait.IntoBytes.html b/deaf/common/trait.IntoBytes.html index adacac5..a63c775 100644 --- a/deaf/common/trait.IntoBytes.html +++ b/deaf/common/trait.IntoBytes.html @@ -1,6 +1,6 @@ -IntoBytes in deaf::common - Rust

Trait deaf::common::IntoBytes

source ·
pub trait IntoBytes {
+IntoBytes in deaf::common - Rust

Trait deaf::common::IntoBytes

source ·
pub trait IntoBytes {
     // Required method
-    fn to_bytes(&self, bytes: &mut [u8], layout: Layout) -> Result<()>;
+    fn to_bytes(&self, bytes: &mut [u8], layout: Layout) -> Result<()>;
 }
Expand description

Convert an object into bytes

Arguments

    @@ -21,4 +21,4 @@

    Examples

    ).unwrap(); assert_eq!(found,expected);
-

Required Methods§

source

fn to_bytes(&self, bytes: &mut [u8], layout: Layout) -> Result<()>

Implementations on Foreign Types§

source§

impl IntoBytes for u64

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for i64

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for u16

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for String

source§

fn to_bytes(&self, b: &mut [u8], _: Layout) -> Result<()>

source§

impl IntoBytes for u8

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for u32

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for CString

source§

fn to_bytes(&self, b: &mut [u8], _: Layout) -> Result<()>

source§

impl IntoBytes for i32

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for [u8; 7]

source§

fn to_bytes(&self, b: &mut [u8], _: Layout) -> Result<()>

Implementors§

\ No newline at end of file +

Required Methods§

source

fn to_bytes(&self, bytes: &mut [u8], layout: Layout) -> Result<()>

Implementations on Foreign Types§

source§

impl IntoBytes for u32

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for String

source§

fn to_bytes(&self, b: &mut [u8], _: Layout) -> Result<()>

source§

impl IntoBytes for i64

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for u64

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for CString

source§

fn to_bytes(&self, b: &mut [u8], _: Layout) -> Result<()>

source§

impl IntoBytes for u8

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for u16

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

source§

impl IntoBytes for [u8; 7]

source§

fn to_bytes(&self, b: &mut [u8], _: Layout) -> Result<()>

source§

impl IntoBytes for i32

source§

fn to_bytes(&self, b: &mut [u8], l: Layout) -> Result<()>

Implementors§

\ No newline at end of file diff --git a/deaf/common/trait.T32Value.html b/deaf/common/trait.T32Value.html index 88f693e..439d551 100644 --- a/deaf/common/trait.T32Value.html +++ b/deaf/common/trait.T32Value.html @@ -1 +1 @@ -T32Value in deaf::common - Rust

Trait deaf::common::T32Value

source ·
pub trait T32Value<Out>: FromBytes + IntoBytes + Convert<Out> + Clone { }

Implementors§

source§

impl<Out, T: FromBytes + IntoBytes + Convert<Out> + Clone> T32Value<Out> for T

\ No newline at end of file +T32Value in deaf::common - Rust

Trait deaf::common::T32Value

source ·
pub trait T32Value<Out>: FromBytes + IntoBytes + Convert<Out> + Clone { }

Implementors§

source§

impl<Out, T: FromBytes + IntoBytes + Convert<Out> + Clone> T32Value<Out> for T

\ No newline at end of file diff --git a/deaf/common/trait.T64Value.html b/deaf/common/trait.T64Value.html index c52857a..1f9e158 100644 --- a/deaf/common/trait.T64Value.html +++ b/deaf/common/trait.T64Value.html @@ -1 +1 @@ -T64Value in deaf::common - Rust

Trait deaf::common::T64Value

source ·
pub trait T64Value<Out>: FromBytes + IntoBytes + Convert<Out> + Clone { }

Implementors§

source§

impl<Out, T: FromBytes + IntoBytes + Convert<Out> + Clone> T64Value<Out> for T

\ No newline at end of file +T64Value in deaf::common - Rust

Trait deaf::common::T64Value

source ·
pub trait T64Value<Out>: FromBytes + IntoBytes + Convert<Out> + Clone { }

Implementors§

source§

impl<Out, T: FromBytes + IntoBytes + Convert<Out> + Clone> T64Value<Out> for T

\ No newline at end of file diff --git a/deaf/common/trait.TOutValue.html b/deaf/common/trait.TOutValue.html index f3200d3..30178d1 100644 --- a/deaf/common/trait.TOutValue.html +++ b/deaf/common/trait.TOutValue.html @@ -1 +1 @@ -TOutValue in deaf::common - Rust

Trait deaf::common::TOutValue

source ·
pub trait TOutValue<T32, T64>: Convert<T32> + Convert<T64> + Debug + Clone + Default { }

Implementors§

source§

impl<T32, T64, T: Convert<T32> + Convert<T64> + Debug + Clone + Default> TOutValue<T32, T64> for T

\ No newline at end of file +TOutValue in deaf::common - Rust

Trait deaf::common::TOutValue

source ·
pub trait TOutValue<T32, T64>: Convert<T32> + Convert<T64> + Debug + Clone + Default { }

Implementors§

source§

impl<T32, T64, T: Convert<T32> + Convert<T64> + Debug + Clone + Default> TOutValue<T32, T64> for T

\ No newline at end of file diff --git a/deaf/common/trait.Updateable.html b/deaf/common/trait.Updateable.html index 8f25cf2..0782733 100644 --- a/deaf/common/trait.Updateable.html +++ b/deaf/common/trait.Updateable.html @@ -1,14 +1,14 @@ -Updateable in deaf::common - Rust

Trait deaf::common::Updateable

source ·
pub trait Updateable {
+Updateable in deaf::common - Rust

Trait deaf::common::Updateable

source ·
pub trait Updateable {
     // Provided method
     fn update(&mut self)
-       where Self: Send + Sync + 'static + Sized { ... }
+       where Self: Send + Sync + 'static + Sized { ... }
 }
Expand description

Trait to add an update function to structs that can be updated.

Provided Methods§

source

fn update(&mut self)where - Self: Send + Sync + 'static + Sized,

Implementations on Foreign Types§

source§

impl<T> Updateable for Option<T>where - T: Send + Sync + 'static,

Generic implementation for Option where + Self: Send + Sync + 'static + Sized,

Implementations on Foreign Types§

source§

impl<T> Updateable for Vec<T>where + T: Send + Sync + 'static,

Generic implementation for Vec where T is updateable.

-
source§

fn update(&mut self)

source§

impl<T> Updateable for Vec<T>where - T: Send + Sync + 'static,

Generic implementation for Vec where +

source§

fn update(&mut self)

source§

impl<T> Updateable for Option<T>where + T: Send + Sync + 'static,

Generic implementation for Option where T is updateable.

-
source§

fn update(&mut self)

Implementors§

\ No newline at end of file +
source§

fn update(&mut self)

Implementors§

\ No newline at end of file diff --git a/deaf/errors/enum.Error.html b/deaf/errors/enum.Error.html index 2e88823..5646096 100644 --- a/deaf/errors/enum.Error.html +++ b/deaf/errors/enum.Error.html @@ -1,21 +1,22 @@ -Error in deaf::errors - Rust

Enum deaf::errors::Error

source ·
pub enum Error {
-
Show 17 variants NotFound, +Error in deaf::errors - Rust

Enum deaf::errors::Error

source ·
pub enum Error {
+
Show 18 variants NotFound, ParseError, ConversionError, OutOfBoundsError, MalformedDataError, WrongSectionError, + WrongTypeError, FromComplexError, - FromPrimitiveError(String), - PoisonError(String), - FromBytesWithNulError(FromBytesWithNulError), - FromStringError(NulError), - IntoStringError(IntoStringError), - InfallibleError(Infallible), - ParseValueError(TryFromSliceError), - ParseUtf8Error(Utf8Error), - IOError(Error), - IntConvertError(TryFromIntError), + FromPrimitiveError(String), + PoisonError(String), + FromBytesWithNulError(FromBytesWithNulError), + FromStringError(NulError), + IntoStringError(IntoStringError), + InfallibleError(Infallible), + ParseValueError(TryFromSliceError), + ParseUtf8Error(Utf8Error), + IOError(Error), + IntConvertError(TryFromIntError),
}
Expand description

Custom error type used everywhere in this crate

Variants§

§

NotFound

A resource could not be found

§

ParseError

Binary data could not be parsed into fields

@@ -23,31 +24,32 @@
§

OutOfBoundsError

Collection was accessed with an out-of-bounds index

§

MalformedDataError

Given data has missing or wrong values for the action

§

WrongSectionError

Filed to convert section to a table or array

+
§

WrongTypeError

Filed to convert type to some specialized type

§

FromComplexError

Could not parse complex type from primitive

-
§

FromPrimitiveError(String)

Could not parse complex type from primitive

-
§

PoisonError(String)

Failed to access shared data because Mutex is poisoned

-
§

FromBytesWithNulError(FromBytesWithNulError)

Bytes with no nul terminator could not be parsed as c-string

-
§

FromStringError(NulError)

String with no nul terminator could not be parsed as c-string

-
§

IntoStringError(IntoStringError)

CString failed to convert to UTF-8 encoded String

-
§

InfallibleError(Infallible)

This error will never actually be created

-
§

ParseValueError(TryFromSliceError)

Failed to convert bytes to a value representation

-
§

ParseUtf8Error(Utf8Error)

Bytes could not be converted to UTF-8 encoded String

-
§

IOError(Error)

Could not open a file for reading

-
§

IntConvertError(TryFromIntError)

Could not convert integer to a different integer type

-

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl<T> From<FromBitsError<T>> for Errorwhere +

§

FromPrimitiveError(String)

Could not parse complex type from primitive

+
§

PoisonError(String)

Failed to access shared data because Mutex is poisoned

+
§

FromBytesWithNulError(FromBytesWithNulError)

Bytes with no nul terminator could not be parsed as c-string

+
§

FromStringError(NulError)

String with no nul terminator could not be parsed as c-string

+
§

IntoStringError(IntoStringError)

CString failed to convert to UTF-8 encoded String

+
§

InfallibleError(Infallible)

This error will never actually be created

+
§

ParseValueError(TryFromSliceError)

Failed to convert bytes to a value representation

+
§

ParseUtf8Error(Utf8Error)

Bytes could not be converted to UTF-8 encoded String

+
§

IOError(Error)

Could not open a file for reading

+
§

IntConvertError(TryFromIntError)

Could not convert integer to a different integer type

+

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl<T> From<FromBitsError<T>> for Errorwhere T: BitFlag, - T::Numeric: LowerHex,

source§

fn from(e: FromBitsError<T>) -> Self

Converts to this type from the input type.
source§

impl From<FromBytesWithNulError> for Error

source§

fn from(source: FromBytesWithNulError) -> Self

Converts to this type from the input type.
source§

impl From<Infallible> for Error

source§

fn from(source: Infallible) -> Self

Converts to this type from the input type.
source§

impl From<IntoStringError> for Error

source§

fn from(source: IntoStringError) -> Self

Converts to this type from the input type.
source§

impl From<NulError> for Error

source§

fn from(source: NulError) -> Self

Converts to this type from the input type.
source§

impl<T> From<PoisonError<T>> for Error

source§

fn from(e: PoisonError<T>) -> Self

Converts to this type from the input type.
source§

impl From<TryFromIntError> for Error

source§

fn from(source: TryFromIntError) -> Self

Converts to this type from the input type.
source§

impl<T> From<TryFromPrimitiveError<T>> for Errorwhere - T: TryFromPrimitive,

source§

fn from(e: TryFromPrimitiveError<T>) -> Self

Converts to this type from the input type.
source§

impl From<TryFromSliceError> for Error

source§

fn from(source: TryFromSliceError) -> Self

Converts to this type from the input type.
source§

impl From<Utf8Error> for Error

source§

fn from(source: Utf8Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T::Numeric: LowerHex,
source§

fn from(e: FromBitsError<T>) -> Self

Converts to this type from the input type.
source§

impl From<FromBytesWithNulError> for Error

source§

fn from(source: FromBytesWithNulError) -> Self

Converts to this type from the input type.
source§

impl From<Infallible> for Error

source§

fn from(source: Infallible) -> Self

Converts to this type from the input type.
source§

impl From<IntoStringError> for Error

source§

fn from(source: IntoStringError) -> Self

Converts to this type from the input type.
source§

impl From<NulError> for Error

source§

fn from(source: NulError) -> Self

Converts to this type from the input type.
source§

impl<T> From<PoisonError<T>> for Error

source§

fn from(e: PoisonError<T>) -> Self

Converts to this type from the input type.
source§

impl From<TryFromIntError> for Error

source§

fn from(source: TryFromIntError) -> Self

Converts to this type from the input type.
source§

impl<T> From<TryFromPrimitiveError<T>> for Errorwhere + T: TryFromPrimitive,

source§

fn from(e: TryFromPrimitiveError<T>) -> Self

Converts to this type from the input type.
source§

impl From<TryFromSliceError> for Error

source§

fn from(source: TryFromSliceError) -> Self

Converts to this type from the input type.
source§

impl From<Utf8Error> for Error

source§

fn from(source: Utf8Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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<E> Provider for Ewhere - E: Error + ?Sized,

source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to -provide by using demand. Read more
source§

impl<T> ToString for Twhere - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<E> Provider for Ewhere + E: Error + ?Sized,

source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to +provide by using demand. Read more
source§

impl<T> ToString for Twhere + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/errors/index.html b/deaf/errors/index.html index a2014fd..ae1b7f4 100644 --- a/deaf/errors/index.html +++ b/deaf/errors/index.html @@ -1,2 +1,2 @@ -deaf::errors - Rust

Module deaf::errors

source ·
Expand description

A custom error type that aggregates internal errors

+deaf::errors - Rust

Module deaf::errors

source ·
Expand description

A custom error type that aggregates internal errors

Enums

  • Custom error type used everywhere in this crate

Type Definitions

  • Type alias for ‘Result’ that uses our Error type
\ No newline at end of file diff --git a/deaf/errors/type.Result.html b/deaf/errors/type.Result.html index 261bdf1..be20aa5 100644 --- a/deaf/errors/type.Result.html +++ b/deaf/errors/type.Result.html @@ -1,2 +1,2 @@ -Result in deaf::errors - Rust

Type Definition deaf::errors::Result

source ·
pub type Result<T> = Result<T, Error>;
Expand description

Type alias for ‘Result’ that uses our Error type

+Result in deaf::errors - Rust

Type Definition deaf::errors::Result

source ·
pub type Result<T> = Result<T, Error>;
Expand description

Type alias for ‘Result’ that uses our Error type

\ No newline at end of file diff --git a/deaf/headers/index.html b/deaf/headers/index.html index 77479c1..c80e15d 100644 --- a/deaf/headers/index.html +++ b/deaf/headers/index.html @@ -1,2 +1,2 @@ -deaf::headers - Rust

Module deaf::headers

source ·
Expand description

File, program and section header definitions

+deaf::headers - Rust

Module deaf::headers

source ·
Expand description

File, program and section header definitions

Structs

\ No newline at end of file diff --git a/deaf/headers/struct.FileHeader.html b/deaf/headers/struct.FileHeader.html index 44f5171..1a03add 100644 --- a/deaf/headers/struct.FileHeader.html +++ b/deaf/headers/struct.FileHeader.html @@ -1,63 +1,63 @@ -FileHeader in deaf::headers - Rust

Struct deaf::headers::FileHeader

source ·
pub struct FileHeader { /* private fields */ }
Expand description

The ELF file header parsed from the beginning of the file

+FileHeader in deaf::headers - Rust

Struct deaf::headers::FileHeader

source ·
pub struct FileHeader { /* private fields */ }
Expand description

The ELF file header parsed from the beginning of the file

Implementations§

source§

impl FileHeader

source

pub fn new() -> Self

Create a new header with given Layout and Width

All fields are None until read

-
source

pub fn parse(b: &[u8]) -> Result<Self>

Parse a header from the provided byte buffer

-
source

pub fn read(&mut self, b: &[u8]) -> Result<()>

Read values from a byte buffer

+
source

pub fn parse(b: &[u8]) -> Result<Self>

Parse a header from the provided byte buffer

+
source

pub fn read(&mut self, b: &[u8]) -> Result<()>

Read values from a byte buffer

Byte buffer is assumed to be sliced such that the header is at the beginning of the buffer.

-
source

pub fn write(&self, b: &mut [u8]) -> Result<()>

Write values to a byte buffer

+
source

pub fn write(&self, b: &mut [u8]) -> Result<()>

Write values to a byte buffer

Byte buffer is assumed to be sliced such that the header will be written at the correct position.

-
source

pub fn size(&self) -> usize

The size of the header in bytes

+
source

pub fn size(&self) -> usize

The size of the header in bytes

source

pub fn width(&self) -> Width

Get the width (32 or 64-bit) of the header

source

pub fn set_width(&mut self, width: Width)

Set the width of the header

source

pub fn layout(&self) -> Layout

Get the layout (little or big-endian) of the header

source

pub fn set_layout(&mut self, layout: Layout)

Set the layout of the header

-
source

pub fn magic(&self) -> String

Get the ei_magic attribute of the header

-
source

pub fn set_magic(&mut self, magic: String)

Set the ei_magic attribute of the header

+
source

pub fn magic(&self) -> String

Get the ei_magic attribute of the header

+
source

pub fn set_magic(&mut self, magic: String)

Set the ei_magic attribute of the header

source

pub fn class(&self) -> Width

Get the ei_class attribute of the header

source

pub fn set_class(&mut self, class: Width)

Set the ei_class attribute of the header

source

pub fn data(&self) -> Layout

Get the ei_data attribute of the header

source

pub fn set_data(&mut self, data: Layout)

Set the ei_data attribute of the header

-
source

pub fn version(&self) -> u8

Get the ei_version attribute of the header

-
source

pub fn set_version(&mut self, version: u8)

Set the ei_version attribute of the header

-
source

pub fn osabi(&self) -> u8

Get the ei_osabi attribute of the header

-
source

pub fn set_osabi(&mut self, osabi: u8)

Set the ei_osabi attribute of the header

-
source

pub fn abiversion(&self) -> u8

Get the abiversion attribute of the header

-
source

pub fn set_abiversion(&mut self, abiversion: u8)

Set the abiversion attribute of the header

-
source

pub fn file_type(&self) -> u16

Get the e_type attribute of the header

-
source

pub fn set_file_type(&mut self, file_type: u16)

Set the e_type attribute of the header

-
source

pub fn machine(&self) -> u16

Get the e_machine attribute of the header

-
source

pub fn set_machine(&mut self, machine: u16)

Set the e_machine attribute of the header

-
source

pub fn entry(&self) -> u64

Get the e_entry attribute of the header

-
source

pub fn set_entry(&mut self, entry: u64)

Set the e_entry attribute of the header

-
source

pub fn phoff(&self) -> usize

Get the e_phoff attribute of the header

-
source

pub fn set_phoff(&mut self, phoff: usize)

Set the e_phoff attribute of the header

-
source

pub fn shoff(&self) -> usize

Get the e_shoff attribute of the header

-
source

pub fn set_shoff(&mut self, shoff: usize)

Set the e_shoff attribute of the header

-
source

pub fn flags(&self) -> u32

Get the e_flags attribute of the header

-
source

pub fn set_flags(&mut self, flags: u32)

Set the e_flags attribute of the header

-
source

pub fn ehsize(&self) -> u16

Get the e_ehsize attribute of the header

-
source

pub fn set_ehsize(&mut self, ehsize: u16)

Set the e_ehsize attribute of the header

-
source

pub fn phentsize(&self) -> usize

Get the e_phentsize attribute of the header

-
source

pub fn set_phentsize(&mut self, phentsize: usize)

Set the e_phentsize attribute of the header

-
source

pub fn phnum(&self) -> usize

Get the e_phnum attribute of the header

-
source

pub fn set_phnum(&mut self, phnum: usize)

Set the e_phnum attribute of the header

-
source

pub fn shentsize(&self) -> usize

Get the e_shentsize attribute of the header

-
source

pub fn set_shentsize(&mut self, shentsize: usize)

Set the e_shentsize attribute of the header

-
source

pub fn shnum(&self) -> usize

Get the e_shnum attribute of the header

-
source

pub fn set_shnum(&mut self, shnum: usize)

Set the e_shnum attribute of the header

-
source

pub fn shstrndx(&self) -> usize

Get the e_shstrndx attribute of the header

-
source

pub fn set_shstrndx(&mut self, shstrndx: usize)

Set the e_shstrndx attribute of the header

-

Trait Implementations§

source§

impl Debug for FileHeader

source§

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

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

impl Updateable for FileHeader

source§

fn update(&mut self)where - Self: Send + Sync + 'static + Sized,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn version(&self) -> u8

Get the ei_version attribute of the header

+
source

pub fn set_version(&mut self, version: u8)

Set the ei_version attribute of the header

+
source

pub fn osabi(&self) -> u8

Get the ei_osabi attribute of the header

+
source

pub fn set_osabi(&mut self, osabi: u8)

Set the ei_osabi attribute of the header

+
source

pub fn abiversion(&self) -> u8

Get the abiversion attribute of the header

+
source

pub fn set_abiversion(&mut self, abiversion: u8)

Set the abiversion attribute of the header

+
source

pub fn file_type(&self) -> u16

Get the e_type attribute of the header

+
source

pub fn set_file_type(&mut self, file_type: u16)

Set the e_type attribute of the header

+
source

pub fn machine(&self) -> u16

Get the e_machine attribute of the header

+
source

pub fn set_machine(&mut self, machine: u16)

Set the e_machine attribute of the header

+
source

pub fn entry(&self) -> u64

Get the e_entry attribute of the header

+
source

pub fn set_entry(&mut self, entry: u64)

Set the e_entry attribute of the header

+
source

pub fn phoff(&self) -> usize

Get the e_phoff attribute of the header

+
source

pub fn set_phoff(&mut self, phoff: usize)

Set the e_phoff attribute of the header

+
source

pub fn shoff(&self) -> usize

Get the e_shoff attribute of the header

+
source

pub fn set_shoff(&mut self, shoff: usize)

Set the e_shoff attribute of the header

+
source

pub fn flags(&self) -> u32

Get the e_flags attribute of the header

+
source

pub fn set_flags(&mut self, flags: u32)

Set the e_flags attribute of the header

+
source

pub fn ehsize(&self) -> u16

Get the e_ehsize attribute of the header

+
source

pub fn set_ehsize(&mut self, ehsize: u16)

Set the e_ehsize attribute of the header

+
source

pub fn phentsize(&self) -> usize

Get the e_phentsize attribute of the header

+
source

pub fn set_phentsize(&mut self, phentsize: usize)

Set the e_phentsize attribute of the header

+
source

pub fn phnum(&self) -> usize

Get the e_phnum attribute of the header

+
source

pub fn set_phnum(&mut self, phnum: usize)

Set the e_phnum attribute of the header

+
source

pub fn shentsize(&self) -> usize

Get the e_shentsize attribute of the header

+
source

pub fn set_shentsize(&mut self, shentsize: usize)

Set the e_shentsize attribute of the header

+
source

pub fn shnum(&self) -> usize

Get the e_shnum attribute of the header

+
source

pub fn set_shnum(&mut self, shnum: usize)

Set the e_shnum attribute of the header

+
source

pub fn shstrndx(&self) -> usize

Get the e_shstrndx attribute of the header

+
source

pub fn set_shstrndx(&mut self, shstrndx: usize)

Set the e_shstrndx attribute of the header

+

Trait Implementations§

source§

impl Debug for FileHeader

source§

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

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

impl Updateable for FileHeader

source§

fn update(&mut self)where + Self: Send + Sync + 'static + Sized,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/headers/struct.ProgramHeader.html b/deaf/headers/struct.ProgramHeader.html index d0d9cda..624b5c6 100644 --- a/deaf/headers/struct.ProgramHeader.html +++ b/deaf/headers/struct.ProgramHeader.html @@ -1,55 +1,55 @@ -ProgramHeader in deaf::headers - Rust

Struct deaf::headers::ProgramHeader

source ·
pub struct ProgramHeader { /* private fields */ }
Expand description

Program headers extracted from an ELF file.

+ProgramHeader in deaf::headers - Rust

Struct deaf::headers::ProgramHeader

source ·
pub struct ProgramHeader { /* private fields */ }
Expand description

Program headers extracted from an ELF file.

Normally found at the offset declared in the FileHeader as ‘phoff’.

Implementations§

source§

impl ProgramHeader

source

pub fn new(layout: Layout, width: Width) -> Self

Create a new header with given Layout and Width

All fields are None until read

-
source

pub fn parse(b: &[u8], layout: Layout, width: Width) -> Result<Self>

Parse a header from the provided byte buffer

+
source

pub fn parse(b: &[u8], layout: Layout, width: Width) -> Result<Self>

Parse a header from the provided byte buffer

source

pub fn parse_all( - b: &[u8], - count: usize, - offset: usize, - size: usize, + b: &[u8], + count: usize, + offset: usize, + size: usize, layout: Layout, width: Width -) -> Result<Vec<Self>>

Parse all headers for a byte array given count, offset etc.

-
source

pub fn read(&mut self, b: &[u8]) -> Result<()>

Read values from a byte buffer

+) -> Result<Vec<Self>>

Parse all headers for a byte array given count, offset etc.

+
source

pub fn read(&mut self, b: &[u8]) -> Result<()>

Read values from a byte buffer

Byte buffer is assumed to be sliced such that the header is at the beginning of the buffer.

-
source

pub fn write(&self, b: &mut [u8]) -> Result<()>

Write values to a byte buffer

+
source

pub fn write(&self, b: &mut [u8]) -> Result<()>

Write values to a byte buffer

Byte buffer is assumed to be sliced such that the header will be written at the correct position.

-
source

pub fn size(&self) -> usize

The size of the header in bytes

+
source

pub fn size(&self) -> usize

The size of the header in bytes

source

pub fn width(&self) -> Width

Get the width (32 or 64-bit) of the header

source

pub fn set_width(&mut self, width: Width)

Set the width of the header

source

pub fn layout(&self) -> Layout

Get the layout (little or big-endian) of the header

source

pub fn set_layout(&mut self, layout: Layout)

Set the layout of the header

source

pub fn kind(&self) -> PHType

Get the p_type attribute of the header

source

pub fn set_kind(&mut self, kind: PHType)

Set the p_type attribute of the header

-
source

pub fn flags(&self) -> u32

Get the p_flags attribute of the header

-
source

pub fn set_flags(&mut self, flags: u32)

Set the p_flags attribute of the header

-
source

pub fn offset(&self) -> usize

Get the p_offset attribute of the header

-
source

pub fn set_offset(&mut self, offset: usize)

Set the p_offset attribute of the header

-
source

pub fn vaddr(&self) -> u64

Get the p_vaddr attribute of the header

-
source

pub fn set_vaddr(&mut self, vaddr: u64)

Set the p_vaddr attribute of the header

-
source

pub fn paddr(&self) -> u64

Get the p_paddr attribute of the header

-
source

pub fn set_paddr(&mut self, paddr: u64)

Set the p_paddr attribute of the header

-
source

pub fn filesz(&self) -> usize

Get the p_filesz attribute of the header

-
source

pub fn set_filesz(&mut self, filesz: usize)

Set the p_filesz attribute of the header

-
source

pub fn memsz(&self) -> u64

Get the p_memsz attribute of the header

-
source

pub fn set_memsz(&mut self, memsz: u64)

Set the p_memsz attribute of the header

-
source

pub fn align(&self) -> u64

Get the p_align attribute of the header

-
source

pub fn set_align(&mut self, align: u64)

Set the p_align attribute of the header

-
source

pub fn body_size(&self) -> usize

Get the p_filesz attribute of the header

-
source

pub fn set_body_size(&mut self, body_size: usize)

Set the p_filesz attribute of the header

-

Trait Implementations§

source§

impl Debug for ProgramHeader

source§

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

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

impl Updateable for ProgramHeader

source§

fn update(&mut self)where - Self: Send + Sync + 'static + Sized,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn flags(&self) -> u32

Get the p_flags attribute of the header

+
source

pub fn set_flags(&mut self, flags: u32)

Set the p_flags attribute of the header

+
source

pub fn offset(&self) -> usize

Get the p_offset attribute of the header

+
source

pub fn set_offset(&mut self, offset: usize)

Set the p_offset attribute of the header

+
source

pub fn vaddr(&self) -> u64

Get the p_vaddr attribute of the header

+
source

pub fn set_vaddr(&mut self, vaddr: u64)

Set the p_vaddr attribute of the header

+
source

pub fn paddr(&self) -> u64

Get the p_paddr attribute of the header

+
source

pub fn set_paddr(&mut self, paddr: u64)

Set the p_paddr attribute of the header

+
source

pub fn filesz(&self) -> usize

Get the p_filesz attribute of the header

+
source

pub fn set_filesz(&mut self, filesz: usize)

Set the p_filesz attribute of the header

+
source

pub fn memsz(&self) -> u64

Get the p_memsz attribute of the header

+
source

pub fn set_memsz(&mut self, memsz: u64)

Set the p_memsz attribute of the header

+
source

pub fn align(&self) -> u64

Get the p_align attribute of the header

+
source

pub fn set_align(&mut self, align: u64)

Set the p_align attribute of the header

+
source

pub fn body_size(&self) -> usize

Get the p_filesz attribute of the header

+
source

pub fn set_body_size(&mut self, body_size: usize)

Set the p_filesz attribute of the header

+

Trait Implementations§

source§

impl Debug for ProgramHeader

source§

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

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

impl Updateable for ProgramHeader

source§

fn update(&mut self)where + Self: Send + Sync + 'static + Sized,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/headers/struct.SectionHeader.html b/deaf/headers/struct.SectionHeader.html index 76b654a..5e42866 100644 --- a/deaf/headers/struct.SectionHeader.html +++ b/deaf/headers/struct.SectionHeader.html @@ -1,58 +1,58 @@ -SectionHeader in deaf::headers - Rust

Struct deaf::headers::SectionHeader

source ·
pub struct SectionHeader { /* private fields */ }
Expand description

Section headers extracted from an ELF file.

+SectionHeader in deaf::headers - Rust

Struct deaf::headers::SectionHeader

source ·
pub struct SectionHeader { /* private fields */ }
Expand description

Section headers extracted from an ELF file.

Normally found at the offset declared in the FileHeader as ‘shoff’.

Implementations§

source§

impl SectionHeader

source

pub fn new(layout: Layout, width: Width) -> Self

Create a new header with given Layout and Width

All fields are None until read

-
source

pub fn parse(data: &[u8], layout: Layout, width: Width) -> Result<Self>

Parse a header from the provided byte buffer

+
source

pub fn parse(data: &[u8], layout: Layout, width: Width) -> Result<Self>

Parse a header from the provided byte buffer

source

pub fn parse_all( - data: &[u8], - count: usize, - offset: usize, - size: usize, + data: &[u8], + count: usize, + offset: usize, + size: usize, layout: Layout, width: Width -) -> Result<Vec<Self>>

Parse all headers for a byte array given count, offset etc.

-
source

pub fn read(&mut self, b: &[u8]) -> Result<()>

Read values from a byte buffer

+) -> Result<Vec<Self>>

Parse all headers for a byte array given count, offset etc.

+
source

pub fn read(&mut self, b: &[u8]) -> Result<()>

Read values from a byte buffer

Byte buffer is assumed to be sliced such that the header is at the beginning of the buffer.

-
source

pub fn write(&self, b: &mut [u8]) -> Result<()>

Write values to a byte buffer

+
source

pub fn write(&self, b: &mut [u8]) -> Result<()>

Write values to a byte buffer

Byte buffer is assumed to be sliced such that the header will be written at the correct position.

-
source

pub fn size(&self) -> usize

The size of the header in bytes

+
source

pub fn size(&self) -> usize

The size of the header in bytes

source

pub fn width(&self) -> Width

Get the width (32 or 64-bit) of the header

source

pub fn set_width(&mut self, width: Width)

Set the width of the header

source

pub fn layout(&self) -> Layout

Get the layout (little or big-endian) of the header

source

pub fn set_layout(&mut self, layout: Layout)

Set the layout of the header

-
source

pub fn name(&self) -> u32

Get the sh_name attribute of the header

-
source

pub fn set_name(&mut self, name: u32)

Set the sh_name attribute of the header

+
source

pub fn name_index(&self) -> u32

Get the sh_name attribute of the header

+
source

pub fn set_name_index(&mut self, name: u32)

Set the sh_name attribute of the header

source

pub fn kind(&self) -> SHType

Get the sh_type attribute of the header

source

pub fn set_kind(&mut self, kind: SHType)

Set the sh_type attribute of the header

source

pub fn flags(&self) -> BitFlags<SHFlags>

Get the sh_flags attribute of the header

source

pub fn set_flags(&mut self, flags: BitFlags<SHFlags>)

Set the sh_flags attribute of the header

-
source

pub fn address(&self) -> u64

Get the sh_address attribute of the header

-
source

pub fn set_address(&mut self, address: u64)

Set the sh_address attribute of the header

-
source

pub fn offset(&self) -> usize

Get the sh_offset attribute of the header

-
source

pub fn set_offset(&mut self, offset: usize)

Set the sh_offset attribute of the header

-
source

pub fn body_size(&self) -> usize

Get the sh_size attribute of the header

-
source

pub fn set_body_size(&mut self, body_size: usize)

Set the sh_size attribute of the header

-

Get the sh_link attribute of the header

-

Set the sh_link attribute of the header

-
source

pub fn info(&self) -> u32

Get the sh_info attribute of the header

-
source

pub fn set_info(&mut self, info: u32)

Set the sh_info attribute of the header

-
source

pub fn addralign(&self) -> u64

Get the sh_addralign attribute of the header

-
source

pub fn set_addralign(&mut self, addralign: u64)

Set the sh_addralign attribute of the header

-
source

pub fn entsize(&self) -> usize

Get the sh_entsize attribute of the header

-
source

pub fn set_entsize(&mut self, entsize: usize)

Set the sh_entsize attribute of the header

-

Trait Implementations§

source§

impl Clone for SectionHeader

source§

fn clone(&self) -> SectionHeader

Returns a copy 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 Debug for SectionHeader

source§

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

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

impl From<SectionHeaderData> for SectionHeader

source§

fn from(data: SectionHeaderData) -> Self

Converts to this type from the input type.
source§

impl Updateable for SectionHeader

source§

fn update(&mut self)where - Self: Send + Sync + 'static + Sized,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn address(&self) -> u64

Get the sh_address attribute of the header

+
source

pub fn set_address(&mut self, address: u64)

Set the sh_address attribute of the header

+
source

pub fn offset(&self) -> usize

Get the sh_offset attribute of the header

+
source

pub fn set_offset(&mut self, offset: usize)

Set the sh_offset attribute of the header

+
source

pub fn body_size(&self) -> usize

Get the sh_size attribute of the header

+
source

pub fn set_body_size(&mut self, body_size: usize)

Set the sh_size attribute of the header

+

Get the sh_link attribute of the header

+

Set the sh_link attribute of the header

+
source

pub fn info(&self) -> u32

Get the sh_info attribute of the header

+
source

pub fn set_info(&mut self, info: u32)

Set the sh_info attribute of the header

+
source

pub fn addralign(&self) -> u64

Get the sh_addralign attribute of the header

+
source

pub fn set_addralign(&mut self, addralign: u64)

Set the sh_addralign attribute of the header

+
source

pub fn entsize(&self) -> usize

Get the sh_entsize attribute of the header

+
source

pub fn set_entsize(&mut self, entsize: usize)

Set the sh_entsize attribute of the header

+

Trait Implementations§

source§

impl Clone for SectionHeader

source§

fn clone(&self) -> SectionHeader

Returns a copy 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 Debug for SectionHeader

source§

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

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

impl From<SectionHeaderData> for SectionHeader

source§

fn from(data: SectionHeaderData) -> Self

Converts to this type from the input type.
source§

impl Updateable for SectionHeader

source§

fn update(&mut self)where + Self: Send + Sync + 'static + Sized,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/headers/struct.SectionHeaderData.html b/deaf/headers/struct.SectionHeaderData.html index 04ac17a..9f9e73e 100644 --- a/deaf/headers/struct.SectionHeaderData.html +++ b/deaf/headers/struct.SectionHeaderData.html @@ -1,24 +1,24 @@ -SectionHeaderData in deaf::headers - Rust
pub struct SectionHeaderData {
+SectionHeaderData in deaf::headers - Rust
pub struct SectionHeaderData {
     pub layout: Layout,
     pub width: Width,
-    pub sh_name: u32,
+    pub sh_name: u32,
     pub sh_type: SHType,
     pub sh_flags: BitFlags<SHFlags>,
-    pub sh_address: u64,
-    pub sh_offset: usize,
-    pub sh_size: usize,
-    pub sh_link: u32,
-    pub sh_info: u32,
-    pub sh_addralign: u64,
-    pub sh_entsize: usize,
-}

Fields§

§layout: Layout§width: Width§sh_name: u32§sh_type: SHType§sh_flags: BitFlags<SHFlags>§sh_address: u64§sh_offset: usize§sh_size: usize§sh_link: u32§sh_info: u32§sh_addralign: u64§sh_entsize: usize

Trait Implementations§

source§

impl Debug for SectionHeaderData

source§

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

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

impl Default for SectionHeaderData

source§

fn default() -> SectionHeaderData

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

impl From<SectionHeaderData> for SectionHeader

source§

fn from(data: SectionHeaderData) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ pub sh_address: u64, + pub sh_offset: usize, + pub sh_size: usize, + pub sh_link: u32, + pub sh_info: u32, + pub sh_addralign: u64, + pub sh_entsize: usize, +}

Fields§

§layout: Layout§width: Width§sh_name: u32§sh_type: SHType§sh_flags: BitFlags<SHFlags>§sh_address: u64§sh_offset: usize§sh_size: usize§sh_link: u32§sh_info: u32§sh_addralign: u64§sh_entsize: usize

Trait Implementations§

source§

impl Debug for SectionHeaderData

source§

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

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

impl Default for SectionHeaderData

source§

fn default() -> SectionHeaderData

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

impl From<SectionHeaderData> for SectionHeader

source§

fn from(data: SectionHeaderData) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/index.html b/deaf/index.html index 70817af..9e7d099 100644 --- a/deaf/index.html +++ b/deaf/index.html @@ -1,4 +1,4 @@ -deaf - Rust

Crate deaf

source ·
Expand description

+deaf - Rust

Crate deaf

source ·
Expand description

Tests @@ -58,7 +58,7 @@

Getting Started

let binary = Binary::load("assets/libjpeg/libjpeg.so.9").unwrap(); for section in binary.sections(SectionType::Strings).iter() { - let name_offset = section.name(); + let name_offset = section.name_index(); let name_value = binary.section_name(name_offset).unwrap(); println!("{}",name_value); } diff --git a/deaf/struct.Binary.html b/deaf/struct.Binary.html index bb0a560..761a551 100644 --- a/deaf/struct.Binary.html +++ b/deaf/struct.Binary.html @@ -1,20 +1,21 @@ -Binary in deaf - Rust

Struct deaf::Binary

source ·
pub struct Binary { /* private fields */ }
Expand description

An ELF formatted binary file

-

Implementations§

source§

impl Binary

source

pub fn read(&mut self, data: &[u8]) -> Result<usize>

source

pub fn write(&self, data: &mut [u8]) -> Result<usize>

source

pub fn load<T: AsRef<Path>>(path: T) -> Result<Self>

source

pub fn save<T: AsRef<Path>>(&self, path: T) -> Result<usize>

source

pub fn size(&self) -> usize

source

pub fn section(&self, index: usize) -> Result<&Section>

source

pub fn section_mut(&mut self, index: usize) -> Result<&mut Section>

source

pub fn sections(&self, kind: SectionType) -> Vec<&Section>

source

pub fn sections_mut(&mut self, kind: SectionType) -> Vec<&mut Section>

source

pub fn section_name(&self, offset: usize) -> Result<String>

source

pub fn section_names(&self) -> Result<Vec<String>>

source

pub fn shnum(&self) -> usize

Get the number of section headers in the file

-
source

pub fn shoff(&self) -> usize

Get the offset of the section header table

-
source

pub fn shentsize(&self) -> usize

Get the size of section headers

-
source

pub fn phnum(&self) -> usize

Get the number of program headers in the file

-
source

pub fn phoff(&self) -> usize

Get the offset of the program header table

-
source

pub fn phentsize(&self) -> usize

Get the size of program headers

-
source

pub fn shstrndx(&self) -> usize

source

pub fn layout(&self) -> Layout

Get the layout of the file (little or big endian)

-
source

pub fn width(&self) -> Width

Get the addressing width of the file (32, 64 etc)

-

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Binary in deaf - Rust

Struct deaf::Binary

source ·
pub struct Binary { /* private fields */ }
Expand description

An ELF formatted binary file

+

Implementations§

source§

impl Binary

source

pub fn read(&mut self, data: &[u8]) -> Result<usize>

source

pub fn write(&self, data: &mut [u8]) -> Result<usize>

source

pub fn load<T: AsRef<Path>>(path: T) -> Result<Self>

source

pub fn save<T: AsRef<Path>>(&self, path: T) -> Result<usize>

source

pub fn process(&mut self) -> Result<()>

source

pub fn size(&self) -> usize

source

pub fn section(&self, index: usize) -> Result<&Section>

source

pub fn section_for_address(&self, address: usize) -> Result<&Section>

source

pub fn section_mut(&mut self, index: usize) -> Result<&mut Section>

source

pub fn sections(&self, kind: SectionType) -> Vec<&Section>

source

pub fn sections_mut(&mut self, kind: SectionType) -> Vec<&mut Section>

source

pub fn section_name(&self, offset: usize) -> Result<String>

source

pub fn section_names(&self) -> Result<Vec<String>>

source

pub fn string_tables(&self) -> Vec<StringTable<'_>>

Get all string tables except the ‘shstrtab’

+
source

pub fn symbol_tables(&self) -> Vec<SymbolTable<'_>>

source

pub fn symbol_tables_mut(&mut self) -> Vec<SymbolTableMut<'_>>

source

pub fn symbol_name(&self, offset: usize) -> Result<String>

source

pub fn symbols(&self) -> Vec<Symbol>

source

pub fn functions(&self) -> Vec<Function>

source

pub fn functions_ex(&self) -> Result<Vec<Function>>

source

pub fn data(&self, address: usize, size: usize) -> Vec<u8>

source

pub fn shnum(&self) -> usize

Get the number of section headers in the file

+
source

pub fn shoff(&self) -> usize

Get the offset of the section header table

+
source

pub fn shentsize(&self) -> usize

Get the size of section headers

+
source

pub fn phnum(&self) -> usize

Get the number of program headers in the file

+
source

pub fn phoff(&self) -> usize

Get the offset of the program header table

+
source

pub fn phentsize(&self) -> usize

Get the size of program headers

+
source

pub fn shstrndx(&self) -> usize

source

pub fn layout(&self) -> Layout

Get the layout of the file (little or big endian)

+
source

pub fn width(&self) -> Width

Get the addressing width of the file (32, 64 etc)

+

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/struct.Section.html b/deaf/struct.Section.html index c1bea36..6266cf0 100644 --- a/deaf/struct.Section.html +++ b/deaf/struct.Section.html @@ -1,29 +1,29 @@ -Section in deaf - Rust

Struct deaf::Section

source ·
pub struct Section { /* private fields */ }
Expand description

A Section extracted from an ELF file

-

Implementations§

source§

impl Section

source

pub fn new(header: SectionHeader) -> Self

Create a new section from a program header

-
source

pub fn read(header: SectionHeader, data: &[u8]) -> Result<Self>

source

pub fn write( +Section in deaf - Rust

Struct deaf::Section

source ·
pub struct Section { /* private fields */ }
Expand description

A Section extracted from an ELF file

+

Implementations§

source§

impl Section

source

pub fn new(header: SectionHeader) -> Self

Create a new section from a program header

+
source

pub fn read(header: SectionHeader, data: &[u8]) -> Result<Self>

source

pub fn write( &self, - data: &mut [u8], - offset: usize, - index: usize -) -> Result<usize>

source

pub fn read_all( - data: &[u8], - count: usize, - offset: usize, - size: usize, + data: &mut [u8], + offset: usize, + index: usize +) -> Result<usize>

source

pub fn read_all( + data: &[u8], + count: usize, + offset: usize, + size: usize, layout: Layout, width: Width -) -> Result<Vec<Section>>

Parse all sections for a byte array given count, offset etc.

-
source

pub fn header(&self) -> &SectionHeader

source

pub fn header_mut(&mut self) -> &mut SectionHeader

source

pub fn data(&self) -> &Vec<u8>

source

pub fn data_mut(&mut self) -> &mut Vec<u8>

source

pub fn slice_unchecked(&self, offset: usize, size: usize) -> &[u8]

source

pub fn slice_mut_unchecked(&mut self, offset: usize, size: usize) -> &mut [u8]

source

pub fn slice(&self, offset: usize, size: usize) -> Result<&[u8]>

source

pub fn slice_mut(&mut self, offset: usize, size: usize) -> Result<&mut [u8]>

source

pub fn set_data(&mut self, data: Vec<u8>)

source

pub fn size(&self) -> usize

source

pub fn name(&self) -> usize

source

pub fn body_size(&self) -> usize

source

pub fn set_body_size(&mut self, body_size: usize)

source

pub fn entity_size(&self) -> usize

source

pub fn entity_count(&self) -> usize

source

pub fn offset(&self) -> usize

source

pub fn layout(&self) -> Layout

source

pub fn width(&self) -> Width

source

pub fn kind(&self) -> SectionType

source

pub fn is_kind(&self, kind: SectionType) -> bool

Trait Implementations§

source§

impl Clone for Section

source§

fn clone(&self) -> Section

Returns a copy 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 Debug for Section

source§

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

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

impl<'a, T> From<Table<'a, T>> for &'a Sectionwhere - T: TableItem + Default,

source§

fn from(table: Table<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> From<TableMut<'a, T>> for &'a mut Sectionwhere - T: TableItem + Default,

source§

fn from(table: TableMut<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, ArrayItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, RelItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, RelaItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, StringItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, SymbolItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, ArrayItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelaItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, StringItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, SymbolItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl Updateable for Section

source§

fn update(&mut self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Vec<Section>>

Parse all sections for a byte array given count, offset etc.

+
source

pub fn with_name(self, name: String) -> Self

source

pub fn set_name(&mut self, name: String)

source

pub fn name(&self) -> String

source

pub fn header(&self) -> &SectionHeader

source

pub fn header_mut(&mut self) -> &mut SectionHeader

source

pub fn data(&self) -> &Vec<u8>

source

pub fn data_mut(&mut self) -> &mut Vec<u8>

source

pub fn slice_unchecked(&self, offset: usize, size: usize) -> &[u8]

source

pub fn slice_mut_unchecked(&mut self, offset: usize, size: usize) -> &mut [u8]

source

pub fn slice(&self, offset: usize, size: usize) -> Result<&[u8]>

source

pub fn slice_mut(&mut self, offset: usize, size: usize) -> Result<&mut [u8]>

source

pub fn set_data(&mut self, data: Vec<u8>)

source

pub fn size(&self) -> usize

source

pub fn name_index(&self) -> usize

source

pub fn body_size(&self) -> usize

source

pub fn set_body_size(&mut self, body_size: usize)

source

pub fn entity_size(&self) -> usize

source

pub fn entity_count(&self) -> usize

source

pub fn offset(&self) -> usize

source

pub fn start(&self) -> usize

source

pub fn end(&self) -> usize

source

pub fn layout(&self) -> Layout

source

pub fn width(&self) -> Width

source

pub fn kind(&self) -> SectionType

source

pub fn is_kind(&self, kind: SectionType) -> bool

Trait Implementations§

source§

impl Clone for Section

source§

fn clone(&self) -> Section

Returns a copy 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 Debug for Section

source§

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

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

impl<'a, T> From<Table<'a, T>> for &'a Sectionwhere + T: TableItem + Default,

source§

fn from(table: Table<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> From<TableMut<'a, T>> for &'a mut Sectionwhere + T: TableItem + Default,

source§

fn from(table: TableMut<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, ArrayItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, RelItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, RelaItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, StringItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, Symbol>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, ArrayItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelaItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, StringItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, Symbol>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl Updateable for Section

source§

fn update(&mut self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/struct.Segment.html b/deaf/struct.Segment.html index 582398b..c5b328f 100644 --- a/deaf/struct.Segment.html +++ b/deaf/struct.Segment.html @@ -1,13 +1,13 @@ -Segment in deaf - Rust

Struct deaf::Segment

source ·
pub struct Segment { /* private fields */ }
Expand description

A Segment extracted from an ELF file

-

Implementations§

source§

impl Segment

source

pub fn new(header: ProgramHeader, data: Vec<u8>) -> Self

Create a new segment from a program header

-

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Segment in deaf - Rust

Struct deaf::Segment

source ·
pub struct Segment { /* private fields */ }
Expand description

A Segment extracted from an ELF file

+

Implementations§

source§

impl Segment

source

pub fn new(header: ProgramHeader, data: Vec<u8>) -> Self

Create a new segment from a program header

+

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/tables/index.html b/deaf/tables/index.html index f612d53..8be3ab2 100644 --- a/deaf/tables/index.html +++ b/deaf/tables/index.html @@ -1,5 +1,5 @@ -deaf::tables - Rust

Module deaf::tables

source ·
Expand description

Various types of tables and associated table items

+deaf::tables - Rust

Module deaf::tables

source ·
Expand description

Various types of tables and associated table items

Each table type can be created (using TryFrom) from an appropriate section struct. TryFrom will fail if the section isn’t the correct type (e.g. non-SHT_SYMTAB section header cannot be converted into a Table<SymbolItem> struct).

-

Structs

  • A specialization of item for reading addresses from Arrays
  • A Relocation item found in relocation tables
  • A Relocation item found in relocation tables
  • Representation of the info field in a Relocation record
  • A String item found in string tables
  • Representation of the info field in a Symbol record
  • A Symbol item found in symbol tables
  • A Section represented as an immutable Table
  • A Section represented as a mutable Table

Traits

  • A record that can be extracted from a table section
  • Shared table interface between Table and TableMut

Type Definitions

\ No newline at end of file +

Structs

  • A specialization of item for reading addresses from Arrays
  • A Relocation item found in relocation tables
  • A Relocation item found in relocation tables
  • Representation of the info field in a Relocation record
  • A String item found in string tables
  • A Section represented as an immutable Table
  • A Section represented as a mutable Table

Traits

  • A record that can be extracted from a table section
  • Shared table interface between Table and TableMut

Type Definitions

\ No newline at end of file diff --git a/deaf/tables/info/symbol/struct.SymbolInfo.html b/deaf/tables/info/symbol/struct.SymbolInfo.html deleted file mode 100644 index 1e71c60..0000000 --- a/deaf/tables/info/symbol/struct.SymbolInfo.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../../deaf/tables/struct.SymbolInfo.html...

- - - \ No newline at end of file diff --git a/deaf/tables/items/symbol/struct.SymbolItem.html b/deaf/tables/items/symbol/struct.SymbolItem.html deleted file mode 100644 index ab39d9c..0000000 --- a/deaf/tables/items/symbol/struct.SymbolItem.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../../../deaf/tables/struct.SymbolItem.html...

- - - \ No newline at end of file diff --git a/deaf/tables/sidebar-items.js b/deaf/tables/sidebar-items.js index 7b85f3d..e5226e5 100644 --- a/deaf/tables/sidebar-items.js +++ b/deaf/tables/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":["ArrayItem","RelItem","RelaItem","RelocationInfo","StringItem","SymbolInfo","SymbolItem","Table","TableMut"],"trait":["TableItem","TableView"],"type":["Array","ArrayMut","RelTable","RelTableMut","RelaTable","RelaTableMut","StringTable","StringTableMut","SymbolTable","SymbolTableMut"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":["ArrayItem","RelItem","RelaItem","RelocationInfo","StringItem","Table","TableMut"],"trait":["TableItem","TableView"],"type":["Array","ArrayMut","RelTable","RelTableMut","RelaTable","RelaTableMut","StringTable","StringTableMut","SymbolTable","SymbolTableMut"]}; \ No newline at end of file diff --git a/deaf/tables/struct.ArrayItem.html b/deaf/tables/struct.ArrayItem.html index 8f70524..bf5f416 100644 --- a/deaf/tables/struct.ArrayItem.html +++ b/deaf/tables/struct.ArrayItem.html @@ -1,18 +1,18 @@ -ArrayItem in deaf::tables - Rust

Struct deaf::tables::ArrayItem

source ·
pub struct ArrayItem { /* private fields */ }
Expand description

A specialization of item for reading addresses from Arrays

-

Implementations§

source§

impl ArrayItem

source

pub fn value(&self) -> i64

Get the internal value

-
source

pub fn set_value(&mut self, value: i64)

Set the internal value

-

Trait Implementations§

source§

impl Clone for ArrayItem

source§

fn clone(&self) -> ArrayItem

Returns a copy 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 Default for ArrayItem

source§

fn default() -> Self

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

impl From<i64> for ArrayItem

source§

fn from(value: i64) -> Self

Converts to this type from the input type.
source§

impl PartialEq<ArrayItem> for ArrayItem

source§

fn eq(&self, other: &ArrayItem) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TableItem for ArrayItem

source§

fn set_layout(&mut self, layout: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, width: Width)

Set the width if necessary
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where - Self: Sized,

Parse the item directly from the byte array
source§

impl StructuralPartialEq for ArrayItem

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ArrayItem in deaf::tables - Rust

Struct deaf::tables::ArrayItem

source ·
pub struct ArrayItem { /* private fields */ }
Expand description

A specialization of item for reading addresses from Arrays

+

Implementations§

source§

impl ArrayItem

source

pub fn value(&self) -> i64

Get the internal value

+
source

pub fn set_value(&mut self, value: i64)

Set the internal value

+

Trait Implementations§

source§

impl Clone for ArrayItem

source§

fn clone(&self) -> ArrayItem

Returns a copy 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 Default for ArrayItem

source§

fn default() -> Self

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

impl From<i64> for ArrayItem

source§

fn from(value: i64) -> Self

Converts to this type from the input type.
source§

impl PartialEq<ArrayItem> for ArrayItem

source§

fn eq(&self, other: &ArrayItem) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TableItem for ArrayItem

source§

fn set_layout(&mut self, layout: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, width: Width)

Set the width if necessary
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where + Self: Sized,

Parse the item directly from the byte array
source§

impl StructuralPartialEq for ArrayItem

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/tables/struct.RelItem.html b/deaf/tables/struct.RelItem.html index d0e650e..d4d8e36 100644 --- a/deaf/tables/struct.RelItem.html +++ b/deaf/tables/struct.RelItem.html @@ -1,20 +1,20 @@ -RelItem in deaf::tables - Rust

Struct deaf::tables::RelItem

source ·
pub struct RelItem { /* private fields */ }
Expand description

A Relocation item found in relocation tables

-

Implementations§

source§

impl RelItem

source

pub fn offset(&self) -> u64

Get the ‘r_offset’ attribute of the relocation

-
source

pub fn set_offset(&mut self, value: u64)

Set the ‘r_offset’ attribute of the relocation

+RelItem in deaf::tables - Rust

Struct deaf::tables::RelItem

source ·
pub struct RelItem { /* private fields */ }
Expand description

A Relocation item found in relocation tables

+

Implementations§

source§

impl RelItem

source

pub fn offset(&self) -> u64

Get the ‘r_offset’ attribute of the relocation

+
source

pub fn set_offset(&mut self, value: u64)

Set the ‘r_offset’ attribute of the relocation

source

pub fn info(&self) -> RelocationInfo

Get the ‘r_info’ attribute of the relocation

source

pub fn set_info(&mut self, value: RelocationInfo)

Set the ‘r_info’ attribute of the relocation

-

Trait Implementations§

source§

impl Clone for RelItem

source§

fn clone(&self) -> RelItem

Returns a copy 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 Default for RelItem

source§

fn default() -> Self

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

impl PartialEq<RelItem> for RelItem

source§

fn eq(&self, other: &RelItem) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TableItem for RelItem

source§

fn set_layout(&mut self, layout: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, width: Width)

Set the width if necessary
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where - Self: Sized,

Parse the item directly from the byte array
source§

impl StructuralPartialEq for RelItem

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for RelItem

source§

fn clone(&self) -> RelItem

Returns a copy 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 Default for RelItem

source§

fn default() -> Self

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

impl PartialEq<RelItem> for RelItem

source§

fn eq(&self, other: &RelItem) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TableItem for RelItem

source§

fn set_layout(&mut self, layout: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, width: Width)

Set the width if necessary
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where + Self: Sized,

Parse the item directly from the byte array
source§

impl StructuralPartialEq for RelItem

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/tables/struct.RelaItem.html b/deaf/tables/struct.RelaItem.html index 1cbfe1a..fe8ac73 100644 --- a/deaf/tables/struct.RelaItem.html +++ b/deaf/tables/struct.RelaItem.html @@ -1,22 +1,22 @@ -RelaItem in deaf::tables - Rust

Struct deaf::tables::RelaItem

source ·
pub struct RelaItem { /* private fields */ }
Expand description

A Relocation item found in relocation tables

-

Implementations§

source§

impl RelaItem

source

pub fn offset(&self) -> u64

Get the ‘r_offset’ attribute of the relocation

-
source

pub fn set_offset(&mut self, value: u64)

Set the ‘r_offset’ attribute of the relocation

+RelaItem in deaf::tables - Rust

Struct deaf::tables::RelaItem

source ·
pub struct RelaItem { /* private fields */ }
Expand description

A Relocation item found in relocation tables

+

Implementations§

source§

impl RelaItem

source

pub fn offset(&self) -> u64

Get the ‘r_offset’ attribute of the relocation

+
source

pub fn set_offset(&mut self, value: u64)

Set the ‘r_offset’ attribute of the relocation

source

pub fn info(&self) -> RelocationInfo

Get the ‘r_info’ attribute of the relocation

source

pub fn set_info(&mut self, value: RelocationInfo)

Set the ‘r_info’ attribute of the relocation

-
source

pub fn addend(&self) -> i64

Get the ‘r_addend’ attribute of the relocation

-
source

pub fn set_addend(&mut self, value: i64)

Set the ‘r_addend’ attribute of the relocation

-

Trait Implementations§

source§

impl Clone for RelaItem

source§

fn clone(&self) -> RelaItem

Returns a copy 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 Default for RelaItem

source§

fn default() -> Self

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

impl PartialEq<RelaItem> for RelaItem

source§

fn eq(&self, other: &RelaItem) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TableItem for RelaItem

source§

fn set_layout(&mut self, layout: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, width: Width)

Set the width if necessary
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where - Self: Sized,

Parse the item directly from the byte array
source§

impl StructuralPartialEq for RelaItem

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn addend(&self) -> i64

Get the ‘r_addend’ attribute of the relocation

+
source

pub fn set_addend(&mut self, value: i64)

Set the ‘r_addend’ attribute of the relocation

+

Trait Implementations§

source§

impl Clone for RelaItem

source§

fn clone(&self) -> RelaItem

Returns a copy 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 Default for RelaItem

source§

fn default() -> Self

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

impl PartialEq<RelaItem> for RelaItem

source§

fn eq(&self, other: &RelaItem) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TableItem for RelaItem

source§

fn set_layout(&mut self, layout: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, width: Width)

Set the width if necessary
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where + Self: Sized,

Parse the item directly from the byte array
source§

impl StructuralPartialEq for RelaItem

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/tables/struct.RelocationInfo.html b/deaf/tables/struct.RelocationInfo.html index 1e65758..4ecf195 100644 --- a/deaf/tables/struct.RelocationInfo.html +++ b/deaf/tables/struct.RelocationInfo.html @@ -1,20 +1,20 @@ -RelocationInfo in deaf::tables - Rust

Struct deaf::tables::RelocationInfo

source ·
pub struct RelocationInfo { /* private fields */ }
Expand description

Representation of the info field in a Relocation record

-

Implementations§

source§

impl RelocationInfo

source

pub fn symbol(&self) -> u64

Get the ‘symbol’ component of the info struct

-
source

pub fn set_symbol(&mut self, value: u64)

Set the ‘symbol’ component of the info struct

-
source

pub fn kind(&self) -> u8

Get the ‘kind’ component of the info struct

-
source

pub fn set_kind(&mut self, value: u8)

Set the ‘kind’ component of the info struct

-

Trait Implementations§

source§

impl Clone for RelocationInfo

source§

fn clone(&self) -> RelocationInfo

Returns a copy 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 Convert<RelocationInfo> for u32

source§

impl Convert<RelocationInfo> for u64

source§

impl Convert<u32> for RelocationInfo

source§

impl Convert<u64> for RelocationInfo

source§

impl Debug for RelocationInfo

source§

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

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

impl Default for RelocationInfo

source§

fn default() -> RelocationInfo

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

impl PartialEq<RelocationInfo> for RelocationInfo

source§

fn eq(&self, other: &RelocationInfo) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for RelocationInfo

source§

impl StructuralPartialEq for RelocationInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+RelocationInfo in deaf::tables - Rust

Struct deaf::tables::RelocationInfo

source ·
pub struct RelocationInfo { /* private fields */ }
Expand description

Representation of the info field in a Relocation record

+

Implementations§

source§

impl RelocationInfo

source

pub fn symbol(&self) -> u64

Get the ‘symbol’ component of the info struct

+
source

pub fn set_symbol(&mut self, value: u64)

Set the ‘symbol’ component of the info struct

+
source

pub fn kind(&self) -> u8

Get the ‘kind’ component of the info struct

+
source

pub fn set_kind(&mut self, value: u8)

Set the ‘kind’ component of the info struct

+

Trait Implementations§

source§

impl Clone for RelocationInfo

source§

fn clone(&self) -> RelocationInfo

Returns a copy 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 Convert<RelocationInfo> for u32

source§

impl Convert<RelocationInfo> for u64

source§

impl Convert<u32> for RelocationInfo

source§

impl Convert<u64> for RelocationInfo

source§

impl Debug for RelocationInfo

source§

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

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

impl Default for RelocationInfo

source§

fn default() -> RelocationInfo

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

impl PartialEq<RelocationInfo> for RelocationInfo

source§

fn eq(&self, other: &RelocationInfo) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Copy for RelocationInfo

source§

impl StructuralPartialEq for RelocationInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/tables/struct.StringItem.html b/deaf/tables/struct.StringItem.html index 9fdd625..ce28a8c 100644 --- a/deaf/tables/struct.StringItem.html +++ b/deaf/tables/struct.StringItem.html @@ -1,26 +1,26 @@ -StringItem in deaf::tables - Rust

Struct deaf::tables::StringItem

source ·
pub struct StringItem { /* private fields */ }
Expand description

A String item found in string tables

-

Implementations§

source§

impl StringItem

source

pub fn string(&self) -> Result<String>

Get the string value of the table item

+StringItem in deaf::tables - Rust

Struct deaf::tables::StringItem

source ·
pub struct StringItem { /* private fields */ }
Expand description

A String item found in string tables

+

Implementations§

source§

impl StringItem

source

pub fn string(&self) -> Result<String>

Get the string value of the table item

This method will fail if the string is not valid UTF-8

-
source

pub fn string_lossy(&self) -> String

Get the string value of the table item

+
source

pub fn string_lossy(&self) -> String

Get the string value of the table item

This method will replace invalid characters with U+FFFD (REPLACEMENT CHARACTER)

-
source

pub fn set_string(&mut self, value: String) -> Result<()>

Set the string value of the table item

+
source

pub fn set_string(&mut self, value: String) -> Result<()>

Set the string value of the table item

This method will fail if the string is not valid UTF-8

-

Trait Implementations§

source§

impl Clone for StringItem

source§

fn clone(&self) -> StringItem

Returns a copy 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 Debug for StringItem

source§

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

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

impl Default for StringItem

source§

fn default() -> StringItem

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

impl PartialEq<StringItem> for StringItem

source§

fn eq(&self, other: &StringItem) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TableItem for StringItem

source§

fn delimiter(_: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where - Self: Sized,

Parse the item directly from the byte array
source§

fn set_layout(&mut self, _: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, _: Width)

Set the width if necessary
source§

impl TryFrom<&str> for StringItem

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(v: &str) -> Result<Self>

Performs the conversion.
source§

impl TryFrom<String> for StringItem

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(v: String) -> Result<Self>

Performs the conversion.
source§

impl StructuralPartialEq for StringItem

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for StringItem

source§

fn clone(&self) -> StringItem

Returns a copy 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 Debug for StringItem

source§

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

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

impl Default for StringItem

source§

fn default() -> StringItem

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

impl PartialEq<StringItem> for StringItem

source§

fn eq(&self, other: &StringItem) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TableItem for StringItem

source§

fn delimiter(_: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where + Self: Sized,

Parse the item directly from the byte array
source§

fn set_layout(&mut self, _: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, _: Width)

Set the width if necessary
source§

impl TryFrom<&str> for StringItem

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(v: &str) -> Result<Self>

Performs the conversion.
source§

impl TryFrom<String> for StringItem

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(v: String) -> Result<Self>

Performs the conversion.
source§

impl StructuralPartialEq for StringItem

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

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 Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere + T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/tables/struct.SymbolInfo.html b/deaf/tables/struct.SymbolInfo.html deleted file mode 100644 index bcfd082..0000000 --- a/deaf/tables/struct.SymbolInfo.html +++ /dev/null @@ -1,21 +0,0 @@ -SymbolInfo in deaf::tables - Rust

Struct deaf::tables::SymbolInfo

source ·
pub struct SymbolInfo { /* private fields */ }
Expand description

Representation of the info field in a Symbol record

-

Implementations§

source§

impl SymbolInfo

source

pub fn empty() -> Self

Initialize an empty symbol info instance

-
source

pub fn new(v: u8) -> Result<Self>

Parse a combined value as an info struct

-
source

pub fn value(&self) -> u8

Get the combined value of the info struct

-
source

pub fn kind(&self) -> STType

Get the ‘kind’ component of the info struct

-
source

pub fn bind(&self) -> STBind

Get the ‘bind’ component of the info struct

-

Trait Implementations§

source§

impl Clone for SymbolInfo

source§

fn clone(&self) -> SymbolInfo

Returns a copy 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 Convert<SymbolInfo> for u8

source§

impl Convert<u8> for SymbolInfo

source§

impl Debug for SymbolInfo

source§

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

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

impl Default for SymbolInfo

source§

fn default() -> SymbolInfo

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

impl PartialEq<SymbolInfo> for SymbolInfo

source§

fn eq(&self, other: &SymbolInfo) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for SymbolInfo

source§

impl StructuralPartialEq for SymbolInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/tables/struct.SymbolItem.html b/deaf/tables/struct.SymbolItem.html deleted file mode 100644 index 1e1cd92..0000000 --- a/deaf/tables/struct.SymbolItem.html +++ /dev/null @@ -1,27 +0,0 @@ -SymbolItem in deaf::tables - Rust

Struct deaf::tables::SymbolItem

source ·
pub struct SymbolItem { /* private fields */ }
Expand description

A Symbol item found in symbol tables

-

Implementations§

source§

impl SymbolItem

source

pub fn name(&self) -> u32

Get the ‘st_name’ attribute (name index) of the symbol

-
source

pub fn set_name(&mut self, value: u32)

Set the ‘st_name’ attribute (name index) of the symbol

-
source

pub fn value(&self) -> u64

Get the ‘st_value’ attribute of the symbol

-
source

pub fn set_value(&mut self, value: u64)

Set the ‘st_value’ attribute of the symbol

-
source

pub fn size(&self) -> u64

Get the ‘st_size’ attribute of the symbol

-
source

pub fn set_size(&mut self, value: u64)

Set the ‘st_size’ attribute of the symbol

-
source

pub fn info(&self) -> SymbolInfo

Get the ‘st_info’ attribute of the symbol

-
source

pub fn set_info(&mut self, value: SymbolInfo)

Set the ‘st_info’ attribute of the symbol

-
source

pub fn other(&self) -> u8

Get the ‘st_other’ attribute of the symbol

-
source

pub fn set_other(&mut self, value: u8)

Set the ‘st_other’ attribute of the symbol

-
source

pub fn shndx(&self) -> u16

Get the ‘st_shndx’ attribute of the symbol

-
source

pub fn set_shndx(&mut self, value: u16)

Set the ‘st_shndx’ attribute of the symbol

-

Trait Implementations§

source§

impl Clone for SymbolItem

source§

fn clone(&self) -> SymbolItem

Returns a copy 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 Debug for SymbolItem

source§

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

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

impl Default for SymbolItem

source§

fn default() -> Self

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

impl TableItem for SymbolItem

source§

fn set_layout(&mut self, layout: Layout)

Set the layout if necessary
source§

fn set_width(&mut self, width: Width)

Set the width if necessary
source§

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array
source§

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array
source§

fn size(&self) -> usize

Get the calculated size of the item
source§

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size
source§

fn parse(data: &[u8], section: &Section) -> Result<Self>where - Self: Sized,

Parse the item directly from the byte array

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - 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> ToOwned for Twhere - T: Clone,

§

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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
source§

impl<T32, T64, T> TOutValue<T32, T64> for Twhere - T: Convert<T32> + Convert<T64> + Debug + Clone + Default,

\ No newline at end of file diff --git a/deaf/tables/struct.Table.html b/deaf/tables/struct.Table.html index 569fbc8..1c8695b 100644 --- a/deaf/tables/struct.Table.html +++ b/deaf/tables/struct.Table.html @@ -1,21 +1,21 @@ -Table in deaf::tables - Rust

Struct deaf::tables::Table

source ·
pub struct Table<'a, T>where
-    T: TableItem + Default,{ /* private fields */ }
Expand description

A Section represented as an immutable Table

-

Trait Implementations§

source§

impl<'a, T> From<Table<'a, T>> for &'a Sectionwhere - T: TableItem + Default,

source§

fn from(table: Table<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> From<TableMut<'a, T>> for Table<'a, T>where - T: TableItem + Default,

source§

fn from(table: TableMut<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> TableView<T> for Table<'a, T>where - T: TableItem + Default,

source§

fn section(&self) -> &Section

Get an immutable reference to the internal section
source§

fn iterator(&self) -> ByteIter<'_>

Get an iterator over each item’s binary data
source§

fn data(&self, index: usize) -> Result<&[u8]>

Get a slice of data that represents an item
source§

fn offset(&self, index: usize) -> usize

Get the offset of an item from the index
source§

fn at(&self, index: usize) -> Result<T>

Get an element from the table
source§

fn at_offset(&self, offset: usize) -> Result<T>

Get an element from the table at a byte offset
source§

fn items(&self) -> Result<Vec<T>>

Get all items from the table
source§

fn len(&self) -> usize

Get the number of items in the table
source§

fn size(&self) -> usize

Get the number of bytes in the table
source§

fn layout(&self) -> Layout

Get the layout being used by this table
source§

fn width(&self) -> Width

Get the width being used by this table
source§

fn has_fixed_size(&self) -> bool

True if items are all the same size
source§

fn has_variable_size(&self) -> bool

True if items can be different sizes
source§

impl<'a> TryFrom<&'a Section> for Table<'a, ArrayItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, RelItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, RelaItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, StringItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, SymbolItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

§

impl<'a, T> RefUnwindSafe for Table<'a, T>where - T: RefUnwindSafe,

§

impl<'a, T> Send for Table<'a, T>where - T: Send,

§

impl<'a, T> Sync for Table<'a, T>where - T: Sync,

§

impl<'a, T> Unpin for Table<'a, T>where - T: Unpin,

§

impl<'a, T> UnwindSafe for Table<'a, T>where - T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Table in deaf::tables - Rust

Struct deaf::tables::Table

source ·
pub struct Table<'a, T>where
+    T: TableItem + Default,{ /* private fields */ }
Expand description

A Section represented as an immutable Table

+

Trait Implementations§

source§

impl<'a, T> From<Table<'a, T>> for &'a Sectionwhere + T: TableItem + Default,

source§

fn from(table: Table<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> From<TableMut<'a, T>> for Table<'a, T>where + T: TableItem + Default,

source§

fn from(table: TableMut<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> TableView<T> for Table<'a, T>where + T: TableItem + Default,

source§

fn section(&self) -> &Section

Get an immutable reference to the internal section
source§

fn name_index(&self) -> usize

Get the name index of the internal section
source§

fn iterator(&self) -> ByteIter<'_>

Get an iterator over each item’s binary data
source§

fn data(&self, index: usize) -> Result<&[u8]>

Get a slice of data that represents an item
source§

fn offset(&self, index: usize) -> usize

Get the offset of an item from the index
source§

fn at(&self, index: usize) -> Result<T>

Get an element from the table
source§

fn at_offset(&self, offset: usize) -> Result<T>

Get an element from the table at a byte offset
source§

fn items(&self) -> Result<Vec<T>>

Get all items from the table
source§

fn len(&self) -> usize

Get the number of items in the table
source§

fn size(&self) -> usize

Get the number of bytes in the table
source§

fn layout(&self) -> Layout

Get the layout being used by this table
source§

fn width(&self) -> Width

Get the width being used by this table
source§

fn has_fixed_size(&self) -> bool

True if items are all the same size
source§

fn has_variable_size(&self) -> bool

True if items can be different sizes
source§

impl<'a> TryFrom<&'a Section> for Table<'a, ArrayItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, RelItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, RelaItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, StringItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a Section> for Table<'a, Symbol>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a Section) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

§

impl<'a, T> RefUnwindSafe for Table<'a, T>where + T: RefUnwindSafe,

§

impl<'a, T> Send for Table<'a, T>where + T: Send,

§

impl<'a, T> Sync for Table<'a, T>where + T: Sync,

§

impl<'a, T> Unpin for Table<'a, T>where + T: Unpin,

§

impl<'a, T> UnwindSafe for Table<'a, T>where + T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/tables/struct.TableMut.html b/deaf/tables/struct.TableMut.html index 1f75db6..be4f645 100644 --- a/deaf/tables/struct.TableMut.html +++ b/deaf/tables/struct.TableMut.html @@ -1,25 +1,25 @@ -TableMut in deaf::tables - Rust

Struct deaf::tables::TableMut

source ·
pub struct TableMut<'a, T>where
-    T: TableItem + Default,{ /* private fields */ }
Expand description

A Section represented as a mutable Table

-

Implementations§

source§

impl<'a, T> TableMut<'a, T>where - T: TableItem + Default,

source

pub fn append(&mut self, item: T) -> Result<usize>

Append an item to the table

-
source

pub fn prepend(&mut self, item: T) -> Result<usize>

Prepend an item to the table

-
source

pub fn insert(&mut self, index: usize, item: T) -> Result<usize>

Insert an item into the table

-
source

pub fn remove(&mut self, index: usize) -> Result<T>

Remove an item from the table by index

-

Trait Implementations§

source§

impl<'a, T> From<TableMut<'a, T>> for &'a mut Sectionwhere - T: TableItem + Default,

source§

fn from(table: TableMut<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> From<TableMut<'a, T>> for Table<'a, T>where - T: TableItem + Default,

source§

fn from(table: TableMut<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> TableView<T> for TableMut<'a, T>where - T: TableItem + Default,

source§

fn section(&self) -> &Section

Get an immutable reference to the internal section
source§

fn iterator(&self) -> ByteIter<'_>

Get an iterator over each item’s binary data
source§

fn data(&self, index: usize) -> Result<&[u8]>

Get a slice of data that represents an item
source§

fn offset(&self, index: usize) -> usize

Get the offset of an item from the index
source§

fn at(&self, index: usize) -> Result<T>

Get an element from the table
source§

fn at_offset(&self, offset: usize) -> Result<T>

Get an element from the table at a byte offset
source§

fn items(&self) -> Result<Vec<T>>

Get all items from the table
source§

fn len(&self) -> usize

Get the number of items in the table
source§

fn size(&self) -> usize

Get the number of bytes in the table
source§

fn layout(&self) -> Layout

Get the layout being used by this table
source§

fn width(&self) -> Width

Get the width being used by this table
source§

fn has_fixed_size(&self) -> bool

True if items are all the same size
source§

fn has_variable_size(&self) -> bool

True if items can be different sizes
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, ArrayItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelaItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, StringItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, SymbolItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

§

impl<'a, T> RefUnwindSafe for TableMut<'a, T>where - T: RefUnwindSafe,

§

impl<'a, T> Send for TableMut<'a, T>where - T: Send,

§

impl<'a, T> Sync for TableMut<'a, T>where - T: Sync,

§

impl<'a, T> Unpin for TableMut<'a, T>where - T: Unpin,

§

impl<'a, T> !UnwindSafe for TableMut<'a, T>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+TableMut in deaf::tables - Rust

Struct deaf::tables::TableMut

source ·
pub struct TableMut<'a, T>where
+    T: TableItem + Default,{ /* private fields */ }
Expand description

A Section represented as a mutable Table

+

Implementations§

source§

impl<'a, T> TableMut<'a, T>where + T: TableItem + Default,

source

pub fn append(&mut self, item: T) -> Result<usize>

Append an item to the table

+
source

pub fn prepend(&mut self, item: T) -> Result<usize>

Prepend an item to the table

+
source

pub fn insert(&mut self, index: usize, item: T) -> Result<usize>

Insert an item into the table

+
source

pub fn remove(&mut self, index: usize) -> Result<T>

Remove an item from the table by index

+

Trait Implementations§

source§

impl<'a, T> From<TableMut<'a, T>> for &'a mut Sectionwhere + T: TableItem + Default,

source§

fn from(table: TableMut<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> From<TableMut<'a, T>> for Table<'a, T>where + T: TableItem + Default,

source§

fn from(table: TableMut<'a, T>) -> Self

Converts to this type from the input type.
source§

impl<'a, T> TableView<T> for TableMut<'a, T>where + T: TableItem + Default,

source§

fn section(&self) -> &Section

Get an immutable reference to the internal section
source§

fn name_index(&self) -> usize

Get the name index of the internal section
source§

fn iterator(&self) -> ByteIter<'_>

Get an iterator over each item’s binary data
source§

fn data(&self, index: usize) -> Result<&[u8]>

Get a slice of data that represents an item
source§

fn offset(&self, index: usize) -> usize

Get the offset of an item from the index
source§

fn at(&self, index: usize) -> Result<T>

Get an element from the table
source§

fn at_offset(&self, offset: usize) -> Result<T>

Get an element from the table at a byte offset
source§

fn items(&self) -> Result<Vec<T>>

Get all items from the table
source§

fn len(&self) -> usize

Get the number of items in the table
source§

fn size(&self) -> usize

Get the number of bytes in the table
source§

fn layout(&self) -> Layout

Get the layout being used by this table
source§

fn width(&self) -> Width

Get the width being used by this table
source§

fn has_fixed_size(&self) -> bool

True if items are all the same size
source§

fn has_variable_size(&self) -> bool

True if items can be different sizes
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, ArrayItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelaItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, StringItem>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.
source§

impl<'a> TryFrom<&'a mut Section> for TableMut<'a, Symbol>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(section: &'a mut Section) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

§

impl<'a, T> RefUnwindSafe for TableMut<'a, T>where + T: RefUnwindSafe,

§

impl<'a, T> Send for TableMut<'a, T>where + T: Send,

§

impl<'a, T> Sync for TableMut<'a, T>where + T: Sync,

§

impl<'a, T> Unpin for TableMut<'a, T>where + T: Unpin,

§

impl<'a, T> !UnwindSafe for TableMut<'a, T>

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<A> Convert<A> for A

source§

fn convert(self) -> Result<A, Error>

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + 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 Twhere - U: Into<T>,

§

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 Twhere - U: TryFrom<T>,

§

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.
\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

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 Twhere + U: TryFrom<T>,

§

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.
\ No newline at end of file diff --git a/deaf/tables/trait.TableItem.html b/deaf/tables/trait.TableItem.html index f643ca9..2950ca8 100644 --- a/deaf/tables/trait.TableItem.html +++ b/deaf/tables/trait.TableItem.html @@ -1,22 +1,22 @@ -TableItem in deaf::tables - Rust

Trait deaf::tables::TableItem

source ·
pub trait TableItem: Default {
+TableItem in deaf::tables - Rust

Trait deaf::tables::TableItem

source ·
pub trait TableItem: Default {
     // Required methods
-    fn read(&mut self, b: &[u8]) -> Result<()>;
-    fn write(&self, b: &mut [u8]) -> Result<()>;
-    fn size(&self) -> usize;
+    fn read(&mut self, b: &[u8]) -> Result<()>;
+    fn write(&self, b: &mut [u8]) -> Result<()>;
+    fn size(&self) -> usize;
 
     // Provided methods
-    fn delimiter(size: usize) -> ByteDelimiter { ... }
-    fn parse(data: &[u8], section: &Section) -> Result<Self>
-       where Self: Sized { ... }
+    fn delimiter(size: usize) -> ByteDelimiter { ... }
+    fn parse(data: &[u8], section: &Section) -> Result<Self>
+       where Self: Sized { ... }
     fn set_layout(&mut self, _: Layout) { ... }
     fn set_width(&mut self, _: Width) { ... }
 }
Expand description

A record that can be extracted from a table section

-

Required Methods§

source

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array

-
source

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array

-
source

fn size(&self) -> usize

Get the calculated size of the item

-

Provided Methods§

source

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size

-
source

fn parse(data: &[u8], section: &Section) -> Result<Self>where - Self: Sized,

Parse the item directly from the byte array

+

Required Methods§

source

fn read(&mut self, b: &[u8]) -> Result<()>

Read the item from a byte array

+
source

fn write(&self, b: &mut [u8]) -> Result<()>

Write the item to a byte array

+
source

fn size(&self) -> usize

Get the calculated size of the item

+

Provided Methods§

source

fn delimiter(size: usize) -> ByteDelimiter

Make a delimiter given expected entity size

+
source

fn parse(data: &[u8], section: &Section) -> Result<Self>where + Self: Sized,

Parse the item directly from the byte array

source

fn set_layout(&mut self, _: Layout)

Set the layout if necessary

source

fn set_width(&mut self, _: Width)

Set the width if necessary

-

Implementors§

\ No newline at end of file +

Implementors§

\ No newline at end of file diff --git a/deaf/tables/trait.TableView.html b/deaf/tables/trait.TableView.html index 01e5e46..3becd5d 100644 --- a/deaf/tables/trait.TableView.html +++ b/deaf/tables/trait.TableView.html @@ -1,35 +1,37 @@ -TableView in deaf::tables - Rust

Trait deaf::tables::TableView

source ·
pub trait TableView<T>where
-    T: TableItem + Default,{
-
Show 13 methods // Required method +TableView in deaf::tables - Rust

Trait deaf::tables::TableView

source ·
pub trait TableView<T>where
+    T: TableItem + Default,{
+
Show 14 methods // Required method fn section(&self) -> &Section; // Provided methods - fn iterator(&self) -> ByteIter<'_> { ... } - fn data(&self, index: usize) -> Result<&[u8]> { ... } - fn offset(&self, index: usize) -> usize { ... } - fn at(&self, index: usize) -> Result<T> { ... } - fn at_offset(&self, offset: usize) -> Result<T> { ... } - fn items(&self) -> Result<Vec<T>> { ... } - fn len(&self) -> usize { ... } - fn size(&self) -> usize { ... } + fn name_index(&self) -> usize { ... } + fn iterator(&self) -> ByteIter<'_> { ... } + fn data(&self, index: usize) -> Result<&[u8]> { ... } + fn offset(&self, index: usize) -> usize { ... } + fn at(&self, index: usize) -> Result<T> { ... } + fn at_offset(&self, offset: usize) -> Result<T> { ... } + fn items(&self) -> Result<Vec<T>> { ... } + fn len(&self) -> usize { ... } + fn size(&self) -> usize { ... } fn layout(&self) -> Layout { ... } fn width(&self) -> Width { ... } - fn has_fixed_size(&self) -> bool { ... } - fn has_variable_size(&self) -> bool { ... } + fn has_fixed_size(&self) -> bool { ... } + fn has_variable_size(&self) -> bool { ... }
}
Expand description

Shared table interface between Table and TableMut

-

Required Methods§

source

fn section(&self) -> &Section

Get an immutable reference to the internal section

-

Provided Methods§

source

fn iterator(&self) -> ByteIter<'_>

Get an iterator over each item’s binary data

-
source

fn data(&self, index: usize) -> Result<&[u8]>

Get a slice of data that represents an item

-
source

fn offset(&self, index: usize) -> usize

Get the offset of an item from the index

-
source

fn at(&self, index: usize) -> Result<T>

Get an element from the table

-
source

fn at_offset(&self, offset: usize) -> Result<T>

Get an element from the table at a byte offset

-
source

fn items(&self) -> Result<Vec<T>>

Get all items from the table

-
source

fn len(&self) -> usize

Get the number of items in the table

-
source

fn size(&self) -> usize

Get the number of bytes in the table

-
source

fn layout(&self) -> Layout

Get the layout being used by this table

-
source

fn width(&self) -> Width

Get the width being used by this table

-
source

fn has_fixed_size(&self) -> bool

True if items are all the same size

-
source

fn has_variable_size(&self) -> bool

True if items can be different sizes

-

Implementors§

source§

impl<'a, T> TableView<T> for Table<'a, T>where - T: TableItem + Default,

source§

impl<'a, T> TableView<T> for TableMut<'a, T>where - T: TableItem + Default,

\ No newline at end of file +

Required Methods§

source

fn section(&self) -> &Section

Get an immutable reference to the internal section

+

Provided Methods§

source

fn name_index(&self) -> usize

Get the name index of the internal section

+
source

fn iterator(&self) -> ByteIter<'_>

Get an iterator over each item’s binary data

+
source

fn data(&self, index: usize) -> Result<&[u8]>

Get a slice of data that represents an item

+
source

fn offset(&self, index: usize) -> usize

Get the offset of an item from the index

+
source

fn at(&self, index: usize) -> Result<T>

Get an element from the table

+
source

fn at_offset(&self, offset: usize) -> Result<T>

Get an element from the table at a byte offset

+
source

fn items(&self) -> Result<Vec<T>>

Get all items from the table

+
source

fn len(&self) -> usize

Get the number of items in the table

+
source

fn size(&self) -> usize

Get the number of bytes in the table

+
source

fn layout(&self) -> Layout

Get the layout being used by this table

+
source

fn width(&self) -> Width

Get the width being used by this table

+
source

fn has_fixed_size(&self) -> bool

True if items are all the same size

+
source

fn has_variable_size(&self) -> bool

True if items can be different sizes

+

Implementors§

source§

impl<'a, T> TableView<T> for Table<'a, T>where + T: TableItem + Default,

source§

impl<'a, T> TableView<T> for TableMut<'a, T>where + T: TableItem + Default,

\ No newline at end of file diff --git a/deaf/tables/type.Array.html b/deaf/tables/type.Array.html index 727dd1d..a34e1ae 100644 --- a/deaf/tables/type.Array.html +++ b/deaf/tables/type.Array.html @@ -1 +1 @@ -Array in deaf::tables - Rust

Type Definition deaf::tables::Array

source ·
pub type Array<'a> = Table<'a, ArrayItem>;
\ No newline at end of file +Array in deaf::tables - Rust

Type Definition deaf::tables::Array

source ·
pub type Array<'a> = Table<'a, ArrayItem>;
\ No newline at end of file diff --git a/deaf/tables/type.ArrayMut.html b/deaf/tables/type.ArrayMut.html index e0a75fd..86a43ec 100644 --- a/deaf/tables/type.ArrayMut.html +++ b/deaf/tables/type.ArrayMut.html @@ -1 +1 @@ -ArrayMut in deaf::tables - Rust

Type Definition deaf::tables::ArrayMut

source ·
pub type ArrayMut<'a> = TableMut<'a, ArrayItem>;
\ No newline at end of file +ArrayMut in deaf::tables - Rust

Type Definition deaf::tables::ArrayMut

source ·
pub type ArrayMut<'a> = TableMut<'a, ArrayItem>;
\ No newline at end of file diff --git a/deaf/tables/type.RelTable.html b/deaf/tables/type.RelTable.html index 20a4482..4ac3020 100644 --- a/deaf/tables/type.RelTable.html +++ b/deaf/tables/type.RelTable.html @@ -1 +1 @@ -RelTable in deaf::tables - Rust

Type Definition deaf::tables::RelTable

source ·
pub type RelTable<'a> = Table<'a, RelItem>;
\ No newline at end of file +RelTable in deaf::tables - Rust

Type Definition deaf::tables::RelTable

source ·
pub type RelTable<'a> = Table<'a, RelItem>;
\ No newline at end of file diff --git a/deaf/tables/type.RelTableMut.html b/deaf/tables/type.RelTableMut.html index 068e0ab..7fc0809 100644 --- a/deaf/tables/type.RelTableMut.html +++ b/deaf/tables/type.RelTableMut.html @@ -1 +1 @@ -RelTableMut in deaf::tables - Rust

Type Definition deaf::tables::RelTableMut

source ·
pub type RelTableMut<'a> = TableMut<'a, RelItem>;
\ No newline at end of file +RelTableMut in deaf::tables - Rust

Type Definition deaf::tables::RelTableMut

source ·
pub type RelTableMut<'a> = TableMut<'a, RelItem>;
\ No newline at end of file diff --git a/deaf/tables/type.RelaTable.html b/deaf/tables/type.RelaTable.html index b25ccd1..161c468 100644 --- a/deaf/tables/type.RelaTable.html +++ b/deaf/tables/type.RelaTable.html @@ -1 +1 @@ -RelaTable in deaf::tables - Rust

Type Definition deaf::tables::RelaTable

source ·
pub type RelaTable<'a> = Table<'a, RelaItem>;
\ No newline at end of file +RelaTable in deaf::tables - Rust

Type Definition deaf::tables::RelaTable

source ·
pub type RelaTable<'a> = Table<'a, RelaItem>;
\ No newline at end of file diff --git a/deaf/tables/type.RelaTableMut.html b/deaf/tables/type.RelaTableMut.html index 23967f5..0291a6f 100644 --- a/deaf/tables/type.RelaTableMut.html +++ b/deaf/tables/type.RelaTableMut.html @@ -1 +1 @@ -RelaTableMut in deaf::tables - Rust

Type Definition deaf::tables::RelaTableMut

source ·
pub type RelaTableMut<'a> = TableMut<'a, RelaItem>;
\ No newline at end of file +RelaTableMut in deaf::tables - Rust

Type Definition deaf::tables::RelaTableMut

source ·
pub type RelaTableMut<'a> = TableMut<'a, RelaItem>;
\ No newline at end of file diff --git a/deaf/tables/type.StringTable.html b/deaf/tables/type.StringTable.html index 9b56a49..1a5839e 100644 --- a/deaf/tables/type.StringTable.html +++ b/deaf/tables/type.StringTable.html @@ -1 +1 @@ -StringTable in deaf::tables - Rust

Type Definition deaf::tables::StringTable

source ·
pub type StringTable<'a> = Table<'a, StringItem>;
\ No newline at end of file +StringTable in deaf::tables - Rust

Type Definition deaf::tables::StringTable

source ·
pub type StringTable<'a> = Table<'a, StringItem>;
\ No newline at end of file diff --git a/deaf/tables/type.StringTableMut.html b/deaf/tables/type.StringTableMut.html index fc39a9d..e35da35 100644 --- a/deaf/tables/type.StringTableMut.html +++ b/deaf/tables/type.StringTableMut.html @@ -1 +1 @@ -StringTableMut in deaf::tables - Rust

Type Definition deaf::tables::StringTableMut

source ·
pub type StringTableMut<'a> = TableMut<'a, StringItem>;
\ No newline at end of file +StringTableMut in deaf::tables - Rust

Type Definition deaf::tables::StringTableMut

source ·
pub type StringTableMut<'a> = TableMut<'a, StringItem>;
\ No newline at end of file diff --git a/deaf/tables/type.SymbolTable.html b/deaf/tables/type.SymbolTable.html index 22b4387..008354c 100644 --- a/deaf/tables/type.SymbolTable.html +++ b/deaf/tables/type.SymbolTable.html @@ -1 +1 @@ -SymbolTable in deaf::tables - Rust

Type Definition deaf::tables::SymbolTable

source ·
pub type SymbolTable<'a> = Table<'a, SymbolItem>;
\ No newline at end of file +SymbolTable in deaf::tables - Rust

Type Definition deaf::tables::SymbolTable

source ·
pub type SymbolTable<'a> = Table<'a, Symbol>;
\ No newline at end of file diff --git a/deaf/tables/type.SymbolTableMut.html b/deaf/tables/type.SymbolTableMut.html index b5d80cb..fbd8ce1 100644 --- a/deaf/tables/type.SymbolTableMut.html +++ b/deaf/tables/type.SymbolTableMut.html @@ -1 +1 @@ -SymbolTableMut in deaf::tables - Rust

Type Definition deaf::tables::SymbolTableMut

source ·
pub type SymbolTableMut<'a> = TableMut<'a, SymbolItem>;
\ No newline at end of file +SymbolTableMut in deaf::tables - Rust

Type Definition deaf::tables::SymbolTableMut

source ·
pub type SymbolTableMut<'a> = TableMut<'a, Symbol>;
\ No newline at end of file diff --git a/deaf/utilities/fn.read.html b/deaf/utilities/fn.read.html index c355d4b..5fcab3c 100644 --- a/deaf/utilities/fn.read.html +++ b/deaf/utilities/fn.read.html @@ -1 +1 @@ -read in deaf::utilities - Rust

Function deaf::utilities::read

source ·
pub fn read<T: Into<PathBuf>>(path: T) -> Result<Vec<u8>>
\ No newline at end of file +read in deaf::utilities - Rust

Function deaf::utilities::read

source ·
pub fn read<T: Into<PathBuf>>(path: T) -> Result<Vec<u8>>
\ No newline at end of file diff --git a/deaf/utilities/index.html b/deaf/utilities/index.html index aebbc26..b1b5185 100644 --- a/deaf/utilities/index.html +++ b/deaf/utilities/index.html @@ -1,2 +1,2 @@ -deaf::utilities - Rust

Module deaf::utilities

source ·
Expand description

Utility functions for both testing and execution

+deaf::utilities - Rust

Module deaf::utilities

source ·
Expand description

Utility functions for both testing and execution

Functions

\ No newline at end of file diff --git a/help.html b/help.html index d451cf4..b7a29db 100644 --- a/help.html +++ b/help.html @@ -1 +1 @@ -Rustdoc help

Rustdoc help

Back
\ No newline at end of file +Rustdoc help

Rustdoc help

Back
\ No newline at end of file diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js index 3cfa2d7..3ed9996 100644 --- a/implementors/core/clone/trait.Clone.js +++ b/implementors/core/clone/trait.Clone.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl<T32, T64, Out> Clone for ItemArray<T32, T64, Out>where\n T32: T32Value<Out> + Clone,\n T64: T64Value<Out> + Clone,\n Out: TOutValue<T32, T64> + Clone,"],["impl Clone for SectionHeader"],["impl<T32, T64, Out> Clone for Field<T32, T64, Out>where\n T32: FromBytes + IntoBytes + Convert<Out> + Clone,\n T64: FromBytes + IntoBytes + Convert<Out> + Clone,\n Out: Convert<T32> + Convert<T64> + Debug + Clone,"],["impl Clone for SHType"],["impl Clone for StringItem"],["impl Clone for Width"],["impl Clone for SymbolItem"],["impl Clone for Section"],["impl Clone for STType"],["impl Clone for STBind"],["impl Clone for ArrayItem"],["impl Clone for Layout"],["impl Clone for RelItem"],["impl<T32, T64, Out> Clone for Item<T32, T64, Out>where\n T32: T32Value<Out> + Clone,\n T64: T64Value<Out> + Clone,\n Out: TOutValue<T32, T64> + Clone,"],["impl Clone for Ranges"],["impl Clone for SHFlags"],["impl Clone for RelaItem"],["impl Clone for SectionType"],["impl Clone for SymbolInfo"],["impl Clone for RelocationInfo"],["impl Clone for PHType"]] +"deaf":[["impl Clone for STType"],["impl Clone for Layout"],["impl<T32, T64, Out> Clone for Item<T32, T64, Out>where\n T32: T32Value<Out> + Clone,\n T64: T64Value<Out> + Clone,\n Out: TOutValue<T32, T64> + Clone,"],["impl<T32, T64, Out> Clone for ItemArray<T32, T64, Out>where\n T32: T32Value<Out> + Clone,\n T64: T64Value<Out> + Clone,\n Out: TOutValue<T32, T64> + Clone,"],["impl Clone for Ranges"],["impl Clone for Width"],["impl Clone for SectionType"],["impl Clone for Section"],["impl Clone for StringItem"],["impl Clone for STBind"],["impl Clone for RelItem"],["impl Clone for RelaItem"],["impl Clone for ArrayItem"],["impl Clone for RelocationInfo"],["impl Clone for SHType"],["impl Clone for PHType"],["impl<T32, T64, Out> Clone for Field<T32, T64, Out>where\n T32: FromBytes + IntoBytes + Convert<Out> + Clone,\n T64: FromBytes + IntoBytes + Convert<Out> + Clone,\n Out: Convert<T32> + Convert<T64> + Debug + Clone,"],["impl Clone for SHFlags"],["impl Clone for SectionHeader"],["impl Clone for STVisibility"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.PartialEq.js b/implementors/core/cmp/trait.PartialEq.js index ca3244d..8fcab35 100644 --- a/implementors/core/cmp/trait.PartialEq.js +++ b/implementors/core/cmp/trait.PartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl PartialEq<SHType> for SHType"],["impl PartialEq<PHType> for PHType"],["impl PartialEq<STType> for STType"],["impl PartialEq<STBind> for STBind"],["impl PartialEq<Width> for Width"],["impl PartialEq<StringItem> for StringItem"],["impl PartialEq<RelocationInfo> for RelocationInfo"],["impl PartialEq<SymbolInfo> for SymbolInfo"],["impl PartialEq<RelaItem> for RelaItem"],["impl PartialEq<ArrayItem> for ArrayItem"],["impl PartialEq<RelItem> for RelItem"],["impl<T32, T64, Out> PartialEq<Item<T32, T64, Out>> for Item<T32, T64, Out>where\n T32: T32Value<Out>,\n T64: T64Value<Out>,\n Out: TOutValue<T32, T64> + PartialEq,"],["impl PartialEq<SHFlags> for SHFlags"],["impl PartialEq<Layout> for Layout"],["impl PartialEq<SectionType> for SectionType"]] +"deaf":[["impl PartialEq<SHFlags> for SHFlags"],["impl PartialEq<SectionType> for SectionType"],["impl PartialEq<RelItem> for RelItem"],["impl PartialEq<StringItem> for StringItem"],["impl PartialEq<STType> for STType"],["impl PartialEq<STBind> for STBind"],["impl PartialEq<SHType> for SHType"],["impl PartialEq<RelaItem> for RelaItem"],["impl PartialEq<PHType> for PHType"],["impl PartialEq<Width> for Width"],["impl PartialEq<STVisibility> for STVisibility"],["impl<T32, T64, Out> PartialEq<Item<T32, T64, Out>> for Item<T32, T64, Out>where\n T32: T32Value<Out>,\n T64: T64Value<Out>,\n Out: TOutValue<T32, T64> + PartialEq,"],["impl PartialEq<RelocationInfo> for RelocationInfo"],["impl PartialEq<Layout> for Layout"],["impl PartialEq<ArrayItem> for ArrayItem"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/convert/trait.From.js b/implementors/core/convert/trait.From.js index 545de6d..6ee271c 100644 --- a/implementors/core/convert/trait.From.js +++ b/implementors/core/convert/trait.From.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl From<NulError> for Error"],["impl From<SHType> for u32"],["impl From<Infallible> for Error"],["impl From<FromBytesWithNulError> for Error"],["impl From<Utf8Error> for Error"],["impl From<PHType> for u32"],["impl From<TryFromIntError> for Error"],["impl From<TryFromSliceError> for Error"],["impl From<i64> for ArrayItem"],["impl From<SectionType> for SHType"],["impl From<SectionHeaderData> for SectionHeader"],["impl<T> From<TryFromPrimitiveError<T>> for Errorwhere\n T: TryFromPrimitive,"],["impl From<u32> for SHType"],["impl From<Width> for u8"],["impl<'a, T> From<Table<'a, T>> for &'a Sectionwhere\n T: TableItem + Default,"],["impl From<Error> for Error"],["impl From<STType> for u8"],["impl<T> From<FromBitsError<T>> for Errorwhere\n T: BitFlag,\n T::Numeric: LowerHex,"],["impl From<SHType> for SectionType"],["impl From<Layout> for u8"],["impl From<IntoStringError> for Error"],["impl From<STBind> for u8"],["impl<'a, T> From<TableMut<'a, T>> for &'a mut Sectionwhere\n T: TableItem + Default,"],["impl<T> From<PoisonError<T>> for Error"],["impl<'a, T> From<TableMut<'a, T>> for Table<'a, T>where\n T: TableItem + Default,"]] +"deaf":[["impl From<Width> for u8"],["impl From<Layout> for u8"],["impl From<STBind> for u8"],["impl<T> From<PoisonError<T>> for Error"],["impl From<u8> for STType"],["impl From<TryFromIntError> for Error"],["impl From<STVisibility> for u8"],["impl From<SectionType> for SHType"],["impl<T> From<FromBitsError<T>> for Errorwhere\n T: BitFlag,\n T::Numeric: LowerHex,"],["impl From<STType> for u8"],["impl From<u8> for STBind"],["impl From<i64> for ArrayItem"],["impl<'a, T> From<Table<'a, T>> for &'a Sectionwhere\n T: TableItem + Default,"],["impl<T> From<TryFromPrimitiveError<T>> for Errorwhere\n T: TryFromPrimitive,"],["impl From<NulError> for Error"],["impl From<u8> for STVisibility"],["impl From<PHType> for u32"],["impl<'a, T> From<TableMut<'a, T>> for &'a mut Sectionwhere\n T: TableItem + Default,"],["impl From<u32> for SHType"],["impl<'a, T> From<TableMut<'a, T>> for Table<'a, T>where\n T: TableItem + Default,"],["impl From<SectionHeaderData> for SectionHeader"],["impl From<SHType> for u32"],["impl From<TryFromSliceError> for Error"],["impl From<SHType> for SectionType"],["impl From<FromBytesWithNulError> for Error"],["impl From<IntoStringError> for Error"],["impl From<Error> for Error"],["impl From<Infallible> for Error"],["impl From<Utf8Error> for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/convert/trait.Into.js b/implementors/core/convert/trait.Into.js index e119986..9cd0712 100644 --- a/implementors/core/convert/trait.Into.js +++ b/implementors/core/convert/trait.Into.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Into<Range<usize>> for &Ranges"]] +"deaf":[["impl Into<Range<usize>> for &Ranges"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/convert/trait.TryFrom.js b/implementors/core/convert/trait.TryFrom.js index 8e844f1..2843c9f 100644 --- a/implementors/core/convert/trait.TryFrom.js +++ b/implementors/core/convert/trait.TryFrom.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl<'a> TryFrom<&'a Section> for Table<'a, SymbolItem>"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelItem>"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, StringItem>"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, SymbolItem>"],["impl TryFrom<u32> for PHType"],["impl TryFrom<u8> for Width"],["impl<'a> TryFrom<&'a Section> for Table<'a, StringItem>"],["impl TryFrom<u8> for Layout"],["impl<'a> TryFrom<&'a Section> for Table<'a, ArrayItem>"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, ArrayItem>"],["impl<'a> TryFrom<&'a Section> for Table<'a, RelItem>"],["impl TryFrom<u8> for STBind"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelaItem>"],["impl<'a> TryFrom<&'a Section> for Table<'a, RelaItem>"],["impl TryFrom<String> for StringItem"],["impl TryFrom<&str> for StringItem"],["impl TryFrom<u8> for STType"]] +"deaf":[["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, Symbol>"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, ArrayItem>"],["impl TryFrom<u32> for PHType"],["impl TryFrom<String> for StringItem"],["impl<'a> TryFrom<&'a Section> for Table<'a, Symbol>"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelaItem>"],["impl<'a> TryFrom<&'a Section> for Table<'a, StringItem>"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, StringItem>"],["impl TryFrom<u8> for Layout"],["impl TryFrom<u8> for Width"],["impl<'a> TryFrom<&'a mut Section> for TableMut<'a, RelItem>"],["impl<'a> TryFrom<&'a Section> for Table<'a, RelItem>"],["impl<'a> TryFrom<&'a Section> for Table<'a, RelaItem>"],["impl TryFrom<&str> for StringItem"],["impl<'a> TryFrom<&'a Section> for Table<'a, ArrayItem>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/default/trait.Default.js b/implementors/core/default/trait.Default.js index 9c71651..234f68c 100644 --- a/implementors/core/default/trait.Default.js +++ b/implementors/core/default/trait.Default.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Default for ArrayItem"],["impl Default for RelItem"],["impl Default for SHType"],["impl Default for Width"],["impl Default for StringItem"],["impl Default for Layout"],["impl Default for RelocationInfo"],["impl Default for STBind"],["impl Default for RelaItem"],["impl Default for PHType"],["impl Default for SymbolInfo"],["impl Default for SectionHeaderData"],["impl Default for SymbolItem"],["impl Default for STType"]] +"deaf":[["impl Default for RelaItem"],["impl Default for RelItem"],["impl Default for Layout"],["impl Default for SHType"],["impl Default for ArrayItem"],["impl Default for PHType"],["impl Default for STBind"],["impl Default for RelocationInfo"],["impl Default for STVisibility"],["impl Default for Width"],["impl Default for SectionHeaderData"],["impl Default for StringItem"],["impl Default for STType"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/error/trait.Error.js b/implementors/core/error/trait.Error.js index bd66012..e278c76 100644 --- a/implementors/core/error/trait.Error.js +++ b/implementors/core/error/trait.Error.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Error for Error"]] +"deaf":[["impl Error for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Debug.js b/implementors/core/fmt/trait.Debug.js index 7eb82ad..f018573 100644 --- a/implementors/core/fmt/trait.Debug.js +++ b/implementors/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Debug for StringItem"],["impl Debug for Width"],["impl Debug for PHType"],["impl Debug for Ranges"],["impl Debug for RelocationInfo"],["impl<T32, T64, Out> Debug for Item<T32, T64, Out>where\n T32: T32Value<Out> + Debug,\n T64: T64Value<Out> + Debug,\n Out: TOutValue<T32, T64> + Debug,"],["impl Debug for Layout"],["impl Debug for SymbolInfo"],["impl Debug for SectionHeader"],["impl Debug for STType"],["impl Debug for STBind"],["impl Debug for SHFlags"],["impl Debug for Error"],["impl Debug for Section"],["impl Debug for SectionHeaderData"],["impl Debug for SectionType"],["impl Debug for SymbolItem"],["impl Debug for FileHeader"],["impl Debug for SHType"],["impl Debug for ProgramHeader"],["impl<T32, T64, Out> Debug for Field<T32, T64, Out>where\n T32: FromBytes + IntoBytes + Convert<Out> + Debug,\n T64: FromBytes + IntoBytes + Convert<Out> + Debug,\n Out: Convert<T32> + Convert<T64> + Debug + Debug,"]] +"deaf":[["impl Debug for Layout"],["impl Debug for Width"],["impl Debug for Section"],["impl Debug for StringItem"],["impl<T32, T64, Out> Debug for Field<T32, T64, Out>where\n T32: FromBytes + IntoBytes + Convert<Out> + Debug,\n T64: FromBytes + IntoBytes + Convert<Out> + Debug,\n Out: Convert<T32> + Convert<T64> + Debug + Debug,"],["impl Debug for ProgramHeader"],["impl Debug for SectionHeaderData"],["impl Debug for STVisibility"],["impl Debug for Error"],["impl Debug for SectionHeader"],["impl Debug for SHType"],["impl Debug for Ranges"],["impl Debug for SHFlags"],["impl Debug for STBind"],["impl Debug for FileHeader"],["impl Debug for STType"],["impl Debug for RelocationInfo"],["impl<T32, T64, Out> Debug for Item<T32, T64, Out>where\n T32: T32Value<Out> + Debug,\n T64: T64Value<Out> + Debug,\n Out: TOutValue<T32, T64> + Debug,"],["impl Debug for SectionType"],["impl Debug for PHType"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Display.js b/implementors/core/fmt/trait.Display.js index b2a896f..6f3dee7 100644 --- a/implementors/core/fmt/trait.Display.js +++ b/implementors/core/fmt/trait.Display.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Display for Error"]] +"deaf":[["impl Display for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/iter/traits/iterator/trait.Iterator.js b/implementors/core/iter/traits/iterator/trait.Iterator.js index 4503ae0..e80c9bb 100644 --- a/implementors/core/iter/traits/iterator/trait.Iterator.js +++ b/implementors/core/iter/traits/iterator/trait.Iterator.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl<'a> Iterator for ByteIter<'a>"]] +"deaf":[["impl<'a> Iterator for ByteIter<'a>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Copy.js b/implementors/core/marker/trait.Copy.js index 829c45f..ff5b722 100644 --- a/implementors/core/marker/trait.Copy.js +++ b/implementors/core/marker/trait.Copy.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Copy for STType"],["impl Copy for STBind"],["impl Copy for SHFlags"],["impl Copy for SHType"],["impl Copy for SectionType"],["impl Copy for Width"],["impl Copy for PHType"],["impl Copy for Layout"],["impl Copy for SymbolInfo"],["impl Copy for RelocationInfo"]] +"deaf":[["impl Copy for RelocationInfo"],["impl Copy for SectionType"],["impl Copy for STBind"],["impl Copy for SHType"],["impl Copy for Layout"],["impl Copy for STType"],["impl Copy for SHFlags"],["impl Copy for Width"],["impl Copy for STVisibility"],["impl Copy for PHType"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js index 8da39e1..e633cf5 100644 --- a/implementors/core/marker/trait.Freeze.js +++ b/implementors/core/marker/trait.Freeze.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Freeze for Error",1,["deaf::errors::Error"]],["impl Freeze for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> Freeze for Field<T32, T64, Out>",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> Freeze for Item<T32, T64, Out>where\n Out: Freeze,",1,["deaf::common::item::Item"]],["impl Freeze for SectionType",1,["deaf::common::enums::SectionType"]],["impl Freeze for All",1,["deaf::common::update::All"]],["impl<T> Freeze for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> Freeze for ItemArray<T32, T64, Out>where\n Out: Freeze,",1,["deaf::common::item_array::ItemArray"]],["impl Freeze for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> Freeze for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl Freeze for Width",1,["deaf::common::constants::Width"]],["impl Freeze for Layout",1,["deaf::common::constants::Layout"]],["impl Freeze for PHType",1,["deaf::common::constants::PHType"]],["impl Freeze for SHType",1,["deaf::common::constants::SHType"]],["impl Freeze for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl Freeze for STBind",1,["deaf::common::constants::STBind"]],["impl Freeze for STType",1,["deaf::common::constants::STType"]],["impl Freeze for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl Freeze for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl Freeze for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl Freeze for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl Freeze for SymbolInfo",1,["deaf::tables::info::symbol::SymbolInfo"]],["impl Freeze for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl Freeze for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl Freeze for SymbolItem",1,["deaf::tables::items::symbol::SymbolItem"]],["impl Freeze for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl Freeze for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl Freeze for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> Freeze for Table<'a, T>",1,["deaf::tables::table::Table"]],["impl<'a, T> Freeze for TableMut<'a, T>",1,["deaf::tables::table::TableMut"]],["impl Freeze for Segment",1,["deaf::segment::Segment"]],["impl Freeze for Section",1,["deaf::section::Section"]],["impl Freeze for Binary",1,["deaf::binary::Binary"]]] +"deaf":[["impl Freeze for Error",1,["deaf::errors::Error"]],["impl Freeze for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> Freeze for Field<T32, T64, Out>",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> Freeze for Item<T32, T64, Out>where\n Out: Freeze,",1,["deaf::common::item::Item"]],["impl Freeze for SectionType",1,["deaf::common::enums::SectionType"]],["impl Freeze for All",1,["deaf::common::update::All"]],["impl<T> Freeze for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> Freeze for ItemArray<T32, T64, Out>where\n Out: Freeze,",1,["deaf::common::item_array::ItemArray"]],["impl Freeze for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> Freeze for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl Freeze for Width",1,["deaf::common::constants::Width"]],["impl Freeze for Layout",1,["deaf::common::constants::Layout"]],["impl Freeze for PHType",1,["deaf::common::constants::PHType"]],["impl Freeze for SHType",1,["deaf::common::constants::SHType"]],["impl Freeze for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl Freeze for STBind",1,["deaf::common::constants::STBind"]],["impl Freeze for STType",1,["deaf::common::constants::STType"]],["impl Freeze for STVisibility",1,["deaf::common::constants::STVisibility"]],["impl Freeze for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl Freeze for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl Freeze for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl Freeze for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl Freeze for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl Freeze for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl Freeze for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl Freeze for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl Freeze for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> Freeze for Table<'a, T>",1,["deaf::tables::table::Table"]],["impl<'a, T> Freeze for TableMut<'a, T>",1,["deaf::tables::table::TableMut"]],["impl Freeze for Segment",1,["deaf::segment::Segment"]],["impl Freeze for Section",1,["deaf::section::Section"]],["impl Freeze for Binary",1,["deaf::binary::Binary"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Send.js b/implementors/core/marker/trait.Send.js index 2be457a..8dc27ac 100644 --- a/implementors/core/marker/trait.Send.js +++ b/implementors/core/marker/trait.Send.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Send for Error",1,["deaf::errors::Error"]],["impl Send for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> Send for Field<T32, T64, Out>where\n Out: Send,\n T32: Send,\n T64: Send,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> Send for Item<T32, T64, Out>where\n Out: Send,\n T32: Send,\n T64: Send,",1,["deaf::common::item::Item"]],["impl Send for SectionType",1,["deaf::common::enums::SectionType"]],["impl Send for All",1,["deaf::common::update::All"]],["impl<T> Send for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> Send for ItemArray<T32, T64, Out>where\n Out: Send,\n T32: Send,\n T64: Send,",1,["deaf::common::item_array::ItemArray"]],["impl Send for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> Send for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl Send for Width",1,["deaf::common::constants::Width"]],["impl Send for Layout",1,["deaf::common::constants::Layout"]],["impl Send for PHType",1,["deaf::common::constants::PHType"]],["impl Send for SHType",1,["deaf::common::constants::SHType"]],["impl Send for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl Send for STBind",1,["deaf::common::constants::STBind"]],["impl Send for STType",1,["deaf::common::constants::STType"]],["impl Send for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl Send for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl Send for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl Send for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl Send for SymbolInfo",1,["deaf::tables::info::symbol::SymbolInfo"]],["impl Send for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl Send for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl Send for SymbolItem",1,["deaf::tables::items::symbol::SymbolItem"]],["impl Send for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl Send for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl Send for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> Send for Table<'a, T>where\n T: Send,",1,["deaf::tables::table::Table"]],["impl<'a, T> Send for TableMut<'a, T>where\n T: Send,",1,["deaf::tables::table::TableMut"]],["impl Send for Segment",1,["deaf::segment::Segment"]],["impl Send for Section",1,["deaf::section::Section"]],["impl Send for Binary",1,["deaf::binary::Binary"]]] +"deaf":[["impl Send for Error",1,["deaf::errors::Error"]],["impl Send for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> Send for Field<T32, T64, Out>where\n Out: Send,\n T32: Send,\n T64: Send,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> Send for Item<T32, T64, Out>where\n Out: Send,\n T32: Send,\n T64: Send,",1,["deaf::common::item::Item"]],["impl Send for SectionType",1,["deaf::common::enums::SectionType"]],["impl Send for All",1,["deaf::common::update::All"]],["impl<T> Send for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> Send for ItemArray<T32, T64, Out>where\n Out: Send,\n T32: Send,\n T64: Send,",1,["deaf::common::item_array::ItemArray"]],["impl Send for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> Send for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl Send for Width",1,["deaf::common::constants::Width"]],["impl Send for Layout",1,["deaf::common::constants::Layout"]],["impl Send for PHType",1,["deaf::common::constants::PHType"]],["impl Send for SHType",1,["deaf::common::constants::SHType"]],["impl Send for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl Send for STBind",1,["deaf::common::constants::STBind"]],["impl Send for STType",1,["deaf::common::constants::STType"]],["impl Send for STVisibility",1,["deaf::common::constants::STVisibility"]],["impl Send for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl Send for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl Send for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl Send for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl Send for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl Send for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl Send for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl Send for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl Send for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> Send for Table<'a, T>where\n T: Send,",1,["deaf::tables::table::Table"]],["impl<'a, T> Send for TableMut<'a, T>where\n T: Send,",1,["deaf::tables::table::TableMut"]],["impl Send for Segment",1,["deaf::segment::Segment"]],["impl Send for Section",1,["deaf::section::Section"]],["impl Send for Binary",1,["deaf::binary::Binary"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralPartialEq.js b/implementors/core/marker/trait.StructuralPartialEq.js index f178c27..aea0133 100644 --- a/implementors/core/marker/trait.StructuralPartialEq.js +++ b/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl StructuralPartialEq for StringItem"],["impl StructuralPartialEq for ArrayItem"],["impl StructuralPartialEq for STBind"],["impl StructuralPartialEq for SectionType"],["impl StructuralPartialEq for RelocationInfo"],["impl StructuralPartialEq for SHFlags"],["impl StructuralPartialEq for Layout"],["impl StructuralPartialEq for PHType"],["impl StructuralPartialEq for RelaItem"],["impl StructuralPartialEq for Width"],["impl StructuralPartialEq for SHType"],["impl StructuralPartialEq for STType"],["impl StructuralPartialEq for RelItem"],["impl StructuralPartialEq for SymbolInfo"]] +"deaf":[["impl StructuralPartialEq for RelItem"],["impl StructuralPartialEq for PHType"],["impl StructuralPartialEq for STType"],["impl StructuralPartialEq for Width"],["impl StructuralPartialEq for RelocationInfo"],["impl StructuralPartialEq for SectionType"],["impl StructuralPartialEq for STBind"],["impl StructuralPartialEq for RelaItem"],["impl StructuralPartialEq for Layout"],["impl StructuralPartialEq for SHFlags"],["impl StructuralPartialEq for StringItem"],["impl StructuralPartialEq for ArrayItem"],["impl StructuralPartialEq for STVisibility"],["impl StructuralPartialEq for SHType"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Sync.js b/implementors/core/marker/trait.Sync.js index 810ce7d..644e92c 100644 --- a/implementors/core/marker/trait.Sync.js +++ b/implementors/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Sync for Error",1,["deaf::errors::Error"]],["impl Sync for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> Sync for Field<T32, T64, Out>where\n Out: Sync,\n T32: Sync,\n T64: Sync,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> Sync for Item<T32, T64, Out>where\n Out: Sync,\n T32: Sync,\n T64: Sync,",1,["deaf::common::item::Item"]],["impl Sync for SectionType",1,["deaf::common::enums::SectionType"]],["impl Sync for All",1,["deaf::common::update::All"]],["impl<T> Sync for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> Sync for ItemArray<T32, T64, Out>where\n Out: Sync,\n T32: Sync,\n T64: Sync,",1,["deaf::common::item_array::ItemArray"]],["impl Sync for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> Sync for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl Sync for Width",1,["deaf::common::constants::Width"]],["impl Sync for Layout",1,["deaf::common::constants::Layout"]],["impl Sync for PHType",1,["deaf::common::constants::PHType"]],["impl Sync for SHType",1,["deaf::common::constants::SHType"]],["impl Sync for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl Sync for STBind",1,["deaf::common::constants::STBind"]],["impl Sync for STType",1,["deaf::common::constants::STType"]],["impl Sync for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl Sync for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl Sync for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl Sync for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl Sync for SymbolInfo",1,["deaf::tables::info::symbol::SymbolInfo"]],["impl Sync for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl Sync for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl Sync for SymbolItem",1,["deaf::tables::items::symbol::SymbolItem"]],["impl Sync for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl Sync for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl Sync for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> Sync for Table<'a, T>where\n T: Sync,",1,["deaf::tables::table::Table"]],["impl<'a, T> Sync for TableMut<'a, T>where\n T: Sync,",1,["deaf::tables::table::TableMut"]],["impl Sync for Segment",1,["deaf::segment::Segment"]],["impl Sync for Section",1,["deaf::section::Section"]],["impl Sync for Binary",1,["deaf::binary::Binary"]]] +"deaf":[["impl Sync for Error",1,["deaf::errors::Error"]],["impl Sync for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> Sync for Field<T32, T64, Out>where\n Out: Sync,\n T32: Sync,\n T64: Sync,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> Sync for Item<T32, T64, Out>where\n Out: Sync,\n T32: Sync,\n T64: Sync,",1,["deaf::common::item::Item"]],["impl Sync for SectionType",1,["deaf::common::enums::SectionType"]],["impl Sync for All",1,["deaf::common::update::All"]],["impl<T> Sync for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> Sync for ItemArray<T32, T64, Out>where\n Out: Sync,\n T32: Sync,\n T64: Sync,",1,["deaf::common::item_array::ItemArray"]],["impl Sync for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> Sync for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl Sync for Width",1,["deaf::common::constants::Width"]],["impl Sync for Layout",1,["deaf::common::constants::Layout"]],["impl Sync for PHType",1,["deaf::common::constants::PHType"]],["impl Sync for SHType",1,["deaf::common::constants::SHType"]],["impl Sync for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl Sync for STBind",1,["deaf::common::constants::STBind"]],["impl Sync for STType",1,["deaf::common::constants::STType"]],["impl Sync for STVisibility",1,["deaf::common::constants::STVisibility"]],["impl Sync for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl Sync for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl Sync for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl Sync for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl Sync for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl Sync for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl Sync for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl Sync for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl Sync for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> Sync for Table<'a, T>where\n T: Sync,",1,["deaf::tables::table::Table"]],["impl<'a, T> Sync for TableMut<'a, T>where\n T: Sync,",1,["deaf::tables::table::TableMut"]],["impl Sync for Segment",1,["deaf::segment::Segment"]],["impl Sync for Section",1,["deaf::section::Section"]],["impl Sync for Binary",1,["deaf::binary::Binary"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Unpin.js b/implementors/core/marker/trait.Unpin.js index 9a0f818..410cb49 100644 --- a/implementors/core/marker/trait.Unpin.js +++ b/implementors/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Unpin for Error",1,["deaf::errors::Error"]],["impl Unpin for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> Unpin for Field<T32, T64, Out>where\n Out: Unpin,\n T32: Unpin,\n T64: Unpin,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> Unpin for Item<T32, T64, Out>where\n Out: Unpin,\n T32: Unpin,\n T64: Unpin,",1,["deaf::common::item::Item"]],["impl Unpin for SectionType",1,["deaf::common::enums::SectionType"]],["impl Unpin for All",1,["deaf::common::update::All"]],["impl<T> Unpin for Update<T>where\n T: Unpin,",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> Unpin for ItemArray<T32, T64, Out>where\n Out: Unpin,\n T32: Unpin,\n T64: Unpin,",1,["deaf::common::item_array::ItemArray"]],["impl Unpin for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> Unpin for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl Unpin for Width",1,["deaf::common::constants::Width"]],["impl Unpin for Layout",1,["deaf::common::constants::Layout"]],["impl Unpin for PHType",1,["deaf::common::constants::PHType"]],["impl Unpin for SHType",1,["deaf::common::constants::SHType"]],["impl Unpin for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl Unpin for STBind",1,["deaf::common::constants::STBind"]],["impl Unpin for STType",1,["deaf::common::constants::STType"]],["impl Unpin for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl Unpin for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl Unpin for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl Unpin for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl Unpin for SymbolInfo",1,["deaf::tables::info::symbol::SymbolInfo"]],["impl Unpin for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl Unpin for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl Unpin for SymbolItem",1,["deaf::tables::items::symbol::SymbolItem"]],["impl Unpin for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl Unpin for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl Unpin for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> Unpin for Table<'a, T>where\n T: Unpin,",1,["deaf::tables::table::Table"]],["impl<'a, T> Unpin for TableMut<'a, T>where\n T: Unpin,",1,["deaf::tables::table::TableMut"]],["impl Unpin for Segment",1,["deaf::segment::Segment"]],["impl Unpin for Section",1,["deaf::section::Section"]],["impl Unpin for Binary",1,["deaf::binary::Binary"]]] +"deaf":[["impl Unpin for Error",1,["deaf::errors::Error"]],["impl Unpin for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> Unpin for Field<T32, T64, Out>where\n Out: Unpin,\n T32: Unpin,\n T64: Unpin,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> Unpin for Item<T32, T64, Out>where\n Out: Unpin,\n T32: Unpin,\n T64: Unpin,",1,["deaf::common::item::Item"]],["impl Unpin for SectionType",1,["deaf::common::enums::SectionType"]],["impl Unpin for All",1,["deaf::common::update::All"]],["impl<T> Unpin for Update<T>where\n T: Unpin,",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> Unpin for ItemArray<T32, T64, Out>where\n Out: Unpin,\n T32: Unpin,\n T64: Unpin,",1,["deaf::common::item_array::ItemArray"]],["impl Unpin for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> Unpin for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl Unpin for Width",1,["deaf::common::constants::Width"]],["impl Unpin for Layout",1,["deaf::common::constants::Layout"]],["impl Unpin for PHType",1,["deaf::common::constants::PHType"]],["impl Unpin for SHType",1,["deaf::common::constants::SHType"]],["impl Unpin for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl Unpin for STBind",1,["deaf::common::constants::STBind"]],["impl Unpin for STType",1,["deaf::common::constants::STType"]],["impl Unpin for STVisibility",1,["deaf::common::constants::STVisibility"]],["impl Unpin for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl Unpin for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl Unpin for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl Unpin for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl Unpin for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl Unpin for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl Unpin for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl Unpin for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl Unpin for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> Unpin for Table<'a, T>where\n T: Unpin,",1,["deaf::tables::table::Table"]],["impl<'a, T> Unpin for TableMut<'a, T>where\n T: Unpin,",1,["deaf::tables::table::TableMut"]],["impl Unpin for Segment",1,["deaf::segment::Segment"]],["impl Unpin for Section",1,["deaf::section::Section"]],["impl Unpin for Binary",1,["deaf::binary::Binary"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/bit/trait.BitAnd.js b/implementors/core/ops/bit/trait.BitAnd.js index a31988f..57d177c 100644 --- a/implementors/core/ops/bit/trait.BitAnd.js +++ b/implementors/core/ops/bit/trait.BitAnd.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl BitAnd<SHFlags> for SHFlags"]] +"deaf":[["impl BitAnd<SHFlags> for SHFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/bit/trait.BitOr.js b/implementors/core/ops/bit/trait.BitOr.js index 7e8c2d0..f6f6cb8 100644 --- a/implementors/core/ops/bit/trait.BitOr.js +++ b/implementors/core/ops/bit/trait.BitOr.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl BitOr<SHFlags> for SHFlags"]] +"deaf":[["impl BitOr<SHFlags> for SHFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/bit/trait.BitXor.js b/implementors/core/ops/bit/trait.BitXor.js index 56eac83..920269a 100644 --- a/implementors/core/ops/bit/trait.BitXor.js +++ b/implementors/core/ops/bit/trait.BitXor.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl BitXor<SHFlags> for SHFlags"]] +"deaf":[["impl BitXor<SHFlags> for SHFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/bit/trait.Not.js b/implementors/core/ops/bit/trait.Not.js index 027a600..4425f7d 100644 --- a/implementors/core/ops/bit/trait.Not.js +++ b/implementors/core/ops/bit/trait.Not.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl Not for SHFlags"]] +"deaf":[["impl Not for SHFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index 44b1c7b..151652a 100644 --- a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl !RefUnwindSafe for Error",1,["deaf::errors::Error"]],["impl RefUnwindSafe for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> RefUnwindSafe for Field<T32, T64, Out>where\n Out: RefUnwindSafe,\n T32: RefUnwindSafe,\n T64: RefUnwindSafe,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> RefUnwindSafe for Item<T32, T64, Out>where\n Out: RefUnwindSafe,\n T32: RefUnwindSafe,\n T64: RefUnwindSafe,",1,["deaf::common::item::Item"]],["impl RefUnwindSafe for SectionType",1,["deaf::common::enums::SectionType"]],["impl RefUnwindSafe for All",1,["deaf::common::update::All"]],["impl<T> !RefUnwindSafe for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> RefUnwindSafe for ItemArray<T32, T64, Out>where\n Out: RefUnwindSafe,\n T32: RefUnwindSafe,\n T64: RefUnwindSafe,",1,["deaf::common::item_array::ItemArray"]],["impl RefUnwindSafe for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> RefUnwindSafe for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl RefUnwindSafe for Width",1,["deaf::common::constants::Width"]],["impl RefUnwindSafe for Layout",1,["deaf::common::constants::Layout"]],["impl RefUnwindSafe for PHType",1,["deaf::common::constants::PHType"]],["impl RefUnwindSafe for SHType",1,["deaf::common::constants::SHType"]],["impl RefUnwindSafe for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl RefUnwindSafe for STBind",1,["deaf::common::constants::STBind"]],["impl RefUnwindSafe for STType",1,["deaf::common::constants::STType"]],["impl RefUnwindSafe for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl RefUnwindSafe for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl RefUnwindSafe for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl RefUnwindSafe for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl RefUnwindSafe for SymbolInfo",1,["deaf::tables::info::symbol::SymbolInfo"]],["impl RefUnwindSafe for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl RefUnwindSafe for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl RefUnwindSafe for SymbolItem",1,["deaf::tables::items::symbol::SymbolItem"]],["impl RefUnwindSafe for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl RefUnwindSafe for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl RefUnwindSafe for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> RefUnwindSafe for Table<'a, T>where\n T: RefUnwindSafe,",1,["deaf::tables::table::Table"]],["impl<'a, T> RefUnwindSafe for TableMut<'a, T>where\n T: RefUnwindSafe,",1,["deaf::tables::table::TableMut"]],["impl RefUnwindSafe for Segment",1,["deaf::segment::Segment"]],["impl RefUnwindSafe for Section",1,["deaf::section::Section"]],["impl RefUnwindSafe for Binary",1,["deaf::binary::Binary"]]] +"deaf":[["impl !RefUnwindSafe for Error",1,["deaf::errors::Error"]],["impl RefUnwindSafe for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> RefUnwindSafe for Field<T32, T64, Out>where\n Out: RefUnwindSafe,\n T32: RefUnwindSafe,\n T64: RefUnwindSafe,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> RefUnwindSafe for Item<T32, T64, Out>where\n Out: RefUnwindSafe,\n T32: RefUnwindSafe,\n T64: RefUnwindSafe,",1,["deaf::common::item::Item"]],["impl RefUnwindSafe for SectionType",1,["deaf::common::enums::SectionType"]],["impl RefUnwindSafe for All",1,["deaf::common::update::All"]],["impl<T> !RefUnwindSafe for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> RefUnwindSafe for ItemArray<T32, T64, Out>where\n Out: RefUnwindSafe,\n T32: RefUnwindSafe,\n T64: RefUnwindSafe,",1,["deaf::common::item_array::ItemArray"]],["impl RefUnwindSafe for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> RefUnwindSafe for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl RefUnwindSafe for Width",1,["deaf::common::constants::Width"]],["impl RefUnwindSafe for Layout",1,["deaf::common::constants::Layout"]],["impl RefUnwindSafe for PHType",1,["deaf::common::constants::PHType"]],["impl RefUnwindSafe for SHType",1,["deaf::common::constants::SHType"]],["impl RefUnwindSafe for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl RefUnwindSafe for STBind",1,["deaf::common::constants::STBind"]],["impl RefUnwindSafe for STType",1,["deaf::common::constants::STType"]],["impl RefUnwindSafe for STVisibility",1,["deaf::common::constants::STVisibility"]],["impl RefUnwindSafe for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl RefUnwindSafe for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl RefUnwindSafe for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl RefUnwindSafe for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl RefUnwindSafe for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl RefUnwindSafe for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl RefUnwindSafe for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl RefUnwindSafe for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl RefUnwindSafe for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> RefUnwindSafe for Table<'a, T>where\n T: RefUnwindSafe,",1,["deaf::tables::table::Table"]],["impl<'a, T> RefUnwindSafe for TableMut<'a, T>where\n T: RefUnwindSafe,",1,["deaf::tables::table::TableMut"]],["impl RefUnwindSafe for Segment",1,["deaf::segment::Segment"]],["impl RefUnwindSafe for Section",1,["deaf::section::Section"]],["impl RefUnwindSafe for Binary",1,["deaf::binary::Binary"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index 7128e10..ff3909b 100644 --- a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl !UnwindSafe for Error",1,["deaf::errors::Error"]],["impl UnwindSafe for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> UnwindSafe for Field<T32, T64, Out>where\n Out: UnwindSafe,\n T32: UnwindSafe,\n T64: UnwindSafe,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> UnwindSafe for Item<T32, T64, Out>where\n Out: UnwindSafe,\n T32: UnwindSafe,\n T64: UnwindSafe,",1,["deaf::common::item::Item"]],["impl UnwindSafe for SectionType",1,["deaf::common::enums::SectionType"]],["impl UnwindSafe for All",1,["deaf::common::update::All"]],["impl<T> !UnwindSafe for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> UnwindSafe for ItemArray<T32, T64, Out>where\n Out: UnwindSafe,\n T32: UnwindSafe,\n T64: UnwindSafe,",1,["deaf::common::item_array::ItemArray"]],["impl UnwindSafe for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> UnwindSafe for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl UnwindSafe for Width",1,["deaf::common::constants::Width"]],["impl UnwindSafe for Layout",1,["deaf::common::constants::Layout"]],["impl UnwindSafe for PHType",1,["deaf::common::constants::PHType"]],["impl UnwindSafe for SHType",1,["deaf::common::constants::SHType"]],["impl UnwindSafe for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl UnwindSafe for STBind",1,["deaf::common::constants::STBind"]],["impl UnwindSafe for STType",1,["deaf::common::constants::STType"]],["impl UnwindSafe for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl UnwindSafe for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl UnwindSafe for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl UnwindSafe for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl UnwindSafe for SymbolInfo",1,["deaf::tables::info::symbol::SymbolInfo"]],["impl UnwindSafe for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl UnwindSafe for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl UnwindSafe for SymbolItem",1,["deaf::tables::items::symbol::SymbolItem"]],["impl UnwindSafe for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl UnwindSafe for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl UnwindSafe for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> UnwindSafe for Table<'a, T>where\n T: UnwindSafe,",1,["deaf::tables::table::Table"]],["impl<'a, T> !UnwindSafe for TableMut<'a, T>",1,["deaf::tables::table::TableMut"]],["impl UnwindSafe for Segment",1,["deaf::segment::Segment"]],["impl UnwindSafe for Section",1,["deaf::section::Section"]],["impl UnwindSafe for Binary",1,["deaf::binary::Binary"]]] +"deaf":[["impl !UnwindSafe for Error",1,["deaf::errors::Error"]],["impl UnwindSafe for Ranges",1,["deaf::common::ranges::Ranges"]],["impl<T32, T64, Out> UnwindSafe for Field<T32, T64, Out>where\n Out: UnwindSafe,\n T32: UnwindSafe,\n T64: UnwindSafe,",1,["deaf::common::field::Field"]],["impl<T32, T64, Out> UnwindSafe for Item<T32, T64, Out>where\n Out: UnwindSafe,\n T32: UnwindSafe,\n T64: UnwindSafe,",1,["deaf::common::item::Item"]],["impl UnwindSafe for SectionType",1,["deaf::common::enums::SectionType"]],["impl UnwindSafe for All",1,["deaf::common::update::All"]],["impl<T> !UnwindSafe for Update<T>",1,["deaf::common::update::Update"]],["impl<T32, T64, Out> UnwindSafe for ItemArray<T32, T64, Out>where\n Out: UnwindSafe,\n T32: UnwindSafe,\n T64: UnwindSafe,",1,["deaf::common::item_array::ItemArray"]],["impl UnwindSafe for ByteDelimiter",1,["deaf::common::iterator::ByteDelimiter"]],["impl<'a> UnwindSafe for ByteIter<'a>",1,["deaf::common::iterator::ByteIter"]],["impl UnwindSafe for Width",1,["deaf::common::constants::Width"]],["impl UnwindSafe for Layout",1,["deaf::common::constants::Layout"]],["impl UnwindSafe for PHType",1,["deaf::common::constants::PHType"]],["impl UnwindSafe for SHType",1,["deaf::common::constants::SHType"]],["impl UnwindSafe for SHFlags",1,["deaf::common::constants::SHFlags"]],["impl UnwindSafe for STBind",1,["deaf::common::constants::STBind"]],["impl UnwindSafe for STType",1,["deaf::common::constants::STType"]],["impl UnwindSafe for STVisibility",1,["deaf::common::constants::STVisibility"]],["impl UnwindSafe for FileHeader",1,["deaf::headers::file::FileHeader"]],["impl UnwindSafe for ProgramHeader",1,["deaf::headers::program::ProgramHeader"]],["impl UnwindSafe for SectionHeader",1,["deaf::headers::section::SectionHeader"]],["impl UnwindSafe for SectionHeaderData",1,["deaf::headers::section::SectionHeaderData"]],["impl UnwindSafe for RelocationInfo",1,["deaf::tables::info::relocation::RelocationInfo"]],["impl UnwindSafe for StringItem",1,["deaf::tables::items::string::StringItem"]],["impl UnwindSafe for RelItem",1,["deaf::tables::items::relocation::RelItem"]],["impl UnwindSafe for RelaItem",1,["deaf::tables::items::relocation::RelaItem"]],["impl UnwindSafe for ArrayItem",1,["deaf::tables::items::array::ArrayItem"]],["impl<'a, T> UnwindSafe for Table<'a, T>where\n T: UnwindSafe,",1,["deaf::tables::table::Table"]],["impl<'a, T> !UnwindSafe for TableMut<'a, T>",1,["deaf::tables::table::TableMut"]],["impl UnwindSafe for Segment",1,["deaf::segment::Segment"]],["impl UnwindSafe for Section",1,["deaf::section::Section"]],["impl UnwindSafe for Binary",1,["deaf::binary::Binary"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/num_enum/trait.FromPrimitive.js b/implementors/num_enum/trait.FromPrimitive.js index b1d7e3b..078e657 100644 --- a/implementors/num_enum/trait.FromPrimitive.js +++ b/implementors/num_enum/trait.FromPrimitive.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl FromPrimitive for SHType"]] +"deaf":[["impl FromPrimitive for STBind"],["impl FromPrimitive for STVisibility"],["impl FromPrimitive for SHType"],["impl FromPrimitive for STType"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/num_enum/trait.TryFromPrimitive.js b/implementors/num_enum/trait.TryFromPrimitive.js index d9c8713..c01b993 100644 --- a/implementors/num_enum/trait.TryFromPrimitive.js +++ b/implementors/num_enum/trait.TryFromPrimitive.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"deaf":[["impl TryFromPrimitive for Width"],["impl TryFromPrimitive for STBind"],["impl TryFromPrimitive for PHType"],["impl TryFromPrimitive for Layout"],["impl TryFromPrimitive for STType"],["impl TryFromPrimitive for SHType"]] +"deaf":[["impl TryFromPrimitive for STVisibility"],["impl TryFromPrimitive for STBind"],["impl TryFromPrimitive for STType"],["impl TryFromPrimitive for PHType"],["impl TryFromPrimitive for SHType"],["impl TryFromPrimitive for Width"],["impl TryFromPrimitive for Layout"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/search-index.js b/search-index.js index 63a8899..575ba8c 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = JSON.parse('{\ -"deaf":{"doc":"","t":"DDDLLLLLLLLLALLLLLLLALLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLALLLLDNEDINNNNDNINNNNNNIDDENNNNENNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNENNNNNNNEENNIIINNNDINENNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRRRRRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLLLLMMMNENNNNNNNNNNNNNNNGNLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLMLLLGDGDGGDGGDDGGDDGGDIDILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLF","n":["Binary","Section","Segment","body_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","common","convert","convert","convert","data","data_mut","entity_count","entity_size","errors","fmt","from","from","from","from","from","header","header_mut","headers","into","into","into","is_kind","kind","layout","layout","load","name","new","new","offset","phentsize","phnum","phoff","read","read","read_all","save","section","section_mut","section_name","section_names","sections","sections_mut","set_body_size","set_data","shentsize","shnum","shoff","shstrndx","size","size","slice","slice_mut","slice_mut_unchecked","slice_unchecked","tables","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update","utilities","width","width","write","write","All","Big","ByteDelimiter","ByteIter","Convert","Dynamic","DynamicSymbols","Empty","ExtendedSymbols","Field","FiniArray","FromBytes","GNUHash","GNULibList","GNU_RELRO","Group","Hash","InitArray","IntoBytes","Item","ItemArray","Layout","Length","Little","Notes","Null","PHType","PT_DYNAMIC","PT_GNU_EH_FRAME","PT_GNU_PROPERTY","PT_GNU_STACK","PT_HIOS","PT_HIPROC","PT_INTERP","PT_LOAD","PT_LOOS","PT_LOPROC","PT_NOTE","PT_NULL","PT_PHDR","PT_SHLIB","PT_TLS","PreInitArray","Program","Ranges","Relocations","RelocationsAddend","Reserved","ReservedTypes","SHF_ALLOC","SHF_EXCLUDE","SHF_EXECINSTR","SHF_GROUP","SHF_INFO_LINK","SHF_LINK_ORDER","SHF_MERGE","SHF_ORDERED","SHF_OS_NONCONFORMING","SHF_STRINGS","SHF_TLS","SHF_WRITE","SHFlags","SHT_ARM_ATTRIBUTES","SHT_ARM_DEBUGOVERLAY","SHT_ARM_EXIDX","SHT_ARM_OVERLAYSECTION","SHT_ARM_PREEMPTMAP","SHT_DYNAMIC","SHT_DYNSYM","SHT_FINI_ARRAY","SHT_GNU_HASH","SHT_GNU_LIBLIST","SHT_GROUP","SHT_HASH","SHT_INIT_ARRAY","SHT_LOOS","SHT_NOBITS","SHT_NOTE","SHT_NULL","SHT_NUM","SHT_PREINIT_ARRAY","SHT_PROGBITS","SHT_REL","SHT_RELA","SHT_SHLIB","SHT_STRTAB","SHT_SYMTAB","SHT_SYMTAB_SHNDX","SHT_VERDEF","SHT_VERNEED","SHT_VERSYM","SHType","STB_GLOBAL","STB_LOCAL","STB_WEAK","STBind","STT_COMMON","STT_FILE","STT_FUNC","STT_NOTYPE","STT_OBJECT","STT_SECTION","STT_TLS","STType","SectionType","Strings","Symbols","T32Value","T64Value","TOutValue","Unknown","Unknown","Unknown","Update","Updateable","Value","Width","X32","X64","add","add_offset","apply","bitand","bitor","bits","bitxor","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","count","default","default","default","default","default","default","empty","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_primitive","get","get","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","item_offset","item_size","iterator","layout","layout","layout","length","length","make","make","new","new","new","new","next","not","offset","offset","parse","ranges","read","read","set","set","set_index","set_index","set_layout","set_layout","set_layout","set_offset","set_offset","set_width","set_width","set_width","size","size","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_primitive","try_from_primitive","try_from_primitive","try_from_primitive","try_from_primitive","try_from_primitive","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_offset","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update","update","value","width","width","width","with_index","with_last_offset","with_layout","with_layout","with_layout","with_offset","with_offset","with_value","with_width","with_width","with_width","write","ADDRESS","BLOOMSHIFT","BLOOMSIZE","EI_ABIVERSION","EI_CLASS","EI_DATA","EI_KEY","EI_MAGIC","EI_OSABI","EI_PAD","EI_VERSION","E_EHSIZE","E_ENTRY","E_FLAGS","E_MACHINE","E_PHENTSIZE","E_PHNUM","E_PHOFF","E_SHENTSIZE","E_SHNUM","E_SHOFF","E_SHSTRNDX","E_TYPE","E_VERSION","NBUCKETS","NCHAIN","P_ALIGN","P_FILESZ","P_FLAGS","P_MEMSZ","P_OFFSET","P_PADDR","P_TYPE","P_VADDR","RT_ADDEND","RT_INFO","RT_OFFSET","Ranges","SH_ADDR","SH_ADDRALIGN","SH_ENTSIZE","SH_FLAGS","SH_INFO","SH_LINK","SH_NAME","SH_OFFSET","SH_SIZE","SH_TYPE","ST_INFO","ST_NAME","ST_OTHER","ST_SHNDX","ST_SIZE","ST_VALUE","SYMOFFSET","VALUE4","VALUE8","at","at_mut","borrow","borrow_mut","clone","clone_into","convert","empty","fmt","from","get","into","into","new","size","to_owned","try_from","try_into","type_id","width","x32","x64","ConversionError","Error","FromBytesWithNulError","FromComplexError","FromPrimitiveError","FromStringError","IOError","InfallibleError","IntConvertError","IntoStringError","MalformedDataError","NotFound","OutOfBoundsError","ParseError","ParseUtf8Error","ParseValueError","PoisonError","Result","WrongSectionError","borrow","borrow_mut","convert","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","into","provide","source","to_string","try_from","try_into","type_id","FileHeader","ProgramHeader","SectionHeader","SectionHeaderData","abiversion","addralign","address","align","body_size","body_size","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","class","clone","clone_into","convert","convert","convert","convert","data","default","ehsize","entry","entsize","file_type","filesz","flags","flags","flags","fmt","fmt","fmt","fmt","from","from","from","from","from","info","into","into","into","into","kind","kind","layout","layout","layout","layout","link","machine","magic","memsz","name","new","new","new","offset","offset","osabi","paddr","parse","parse","parse","parse_all","parse_all","phentsize","phnum","phoff","read","read","read","set_abiversion","set_addralign","set_address","set_align","set_body_size","set_body_size","set_class","set_data","set_ehsize","set_entry","set_entsize","set_file_type","set_filesz","set_flags","set_flags","set_flags","set_info","set_kind","set_kind","set_layout","set_layout","set_layout","set_link","set_machine","set_magic","set_memsz","set_name","set_offset","set_offset","set_osabi","set_paddr","set_phentsize","set_phnum","set_phoff","set_shentsize","set_shnum","set_shoff","set_shstrndx","set_vaddr","set_version","set_width","set_width","set_width","sh_addralign","sh_address","sh_entsize","sh_flags","sh_info","sh_link","sh_name","sh_offset","sh_size","sh_type","shentsize","shnum","shoff","shstrndx","size","size","size","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vaddr","version","width","width","width","width","write","write","write","Array","ArrayItem","ArrayMut","RelItem","RelTable","RelTableMut","RelaItem","RelaTable","RelaTableMut","RelocationInfo","StringItem","StringTable","StringTableMut","SymbolInfo","SymbolItem","SymbolTable","SymbolTableMut","Table","TableItem","TableMut","TableView","addend","append","at","at","at_offset","at_offset","bind","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","data","data","default","default","default","default","default","default","default","delimiter","delimiter","delimiter","empty","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","has_fixed_size","has_fixed_size","has_variable_size","has_variable_size","info","info","info","insert","into","into","into","into","into","into","into","into","into","items","items","iterator","iterator","kind","kind","layout","layout","len","len","name","new","offset","offset","offset","offset","other","parse","parse","prepend","read","read","read","read","read","read","remove","section","section","section","set_addend","set_info","set_info","set_info","set_kind","set_layout","set_layout","set_layout","set_layout","set_layout","set_layout","set_name","set_offset","set_offset","set_other","set_shndx","set_size","set_string","set_symbol","set_value","set_value","set_width","set_width","set_width","set_width","set_width","set_width","shndx","size","size","size","size","size","size","size","size","size","string","string_lossy","symbol","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","value","value","value","width","width","write","write","write","write","write","write","read"],"q":[[0,"deaf"],[85,"deaf::common"],[472,"deaf::common::ranges"],[551,"deaf::errors"],[594,"deaf::headers"],[754,"deaf::tables"],[1004,"deaf::utilities"]],"d":["An ELF formatted binary file","A Section extracted from an ELF file","A Segment extracted from an ELF file","","","","","","","","","","Common structs and types used by all other modules","","","","","","","","A custom error type that aggregates internal errors","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","File, program and section header definitions","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Get the layout of the file (little or big endian)","","","","Create a new segment from a program header","Create a new section from a program header","","Get the size of program headers","Get the number of program headers in the file","Get the offset of the program header table","","","Parse all sections for a byte array given count, offset …","","","","","","","","","","Get the size of section headers","Get the number of section headers in the file","Get the offset of the section header table","","","","","","","","Various types of tables and associated table items","","","","","","","","","","","","","Utility functions for both testing and execution","Get the addressing width of the file (32, 64 etc)","","","","Placeholder target for Update","Big endian (e.g. 0xABCD is represented as ‘AB CD’ )","The delimiter used to determine the ending index of …","An iterator that uses a delimiting value or length to …","Convert a value into another value","","","","","A single field in a section, table item etc.","","Parse an object from bytes","","","","","","","Convert an object into bytes","An item in a section, table item etc that contains a field ","","The endianness of the ELF file","","Little endian (e.g. 0xABCD is represented as ‘CD AB’)","","","The type of a program header","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The flags of a particular section header","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The type of a section header","","","","The binding of a symbol entry from a static or dynamic …","","","","","","","","The type of a symbol entry from a static or dynamic symbol …","","","","","","","","","","Update for an object of type T","Trait to add an update function to structs that can be …","","The mode of the ELF file","Mode of the ELF file is 32-bit","Mode of the ELF file is 64-bit","Add a new update for type T","Set the offset of the array in the parsed data","Apply all updates for type T","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Clear all updates of type T","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Count updates of type T","","","","","","","Create a new field with an empty range","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Read the buffer and convert into the output value","Get the output value of the item","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Get the offset of a particular index in the array","Get the size of the item for the current width","Get an iterator over slices of the data","Get the layout of the field","Get the layout (little- or big-endian) of the item","Get the layout (little- or big-endian) of the item","Create a new iterator with a length delimiter","Get the length of the array, given the item count","Create a new item with ranges, width and layout","Create a new item array with given ranges, layout, and …","Create a new byte iterator with data and a delimiter","Create a new field from given ranges","Create a new item with given ranges","Create a new item array with given ranges","","","Skip directly to an offset in the data","Get the total offset at which the array will read","Builder method to parse a byte buffer","","Read the value if possible","Read a value at a particular index in the data","Convert output value and write to the buffer","Set the output value of the item","Set an index based on field size to read at","Set an index based on field size to read at","Set the layout of the field","Set the layout (little- or big-endian) of the item","Set the layout (little- or big-endian) of the item","Set an offset in bytes to read at","Set an offset in bytes to read at","Set the width of the field","Set the width (32- or 64-bit) of the item","Set the width (32- or 64-bit) of the item","The expected size in bytes of the output/input buffers","Get the size of the item if there is a value","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Skip directly to an offset in the data","","","","","","","","","","","","","","","","","","Create a new iterator with a value delimiter","Get the width of the field","Get the width (32- or 64-bit) of the item","Get the width (32- or 64-bit) of the item","Builder method to set an index","Builder method to set the last offset for the array","Builder method to set the layout of the field","Builder method to set the initial layout","Builder method to set the initial layout","Builder method to set an offset","Builder method to add an array offset","Builder method to set the initial value","Builder method to set the width of the field","Builder method to set the initial width","Builder method to set the initial width","Write the value if there is one","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This struct maintains several ranges and returns them …","","","","","","","","","","","","","","","","","","","","Get a reference to the current Range","Get at mutable reference to the current Range","","","","","","Create an empty set of ranges","","Returns the argument unchanged.","Get the active Range depending on the current Width","Calls U::from(self).","","Create a new set of ranges given a 32- and 64-bit Range","Get the expected size in bytes of the current range","","","","","","","","A value could not be converted to a different …","Custom error type used everywhere in this crate","Bytes with no nul terminator could not be parsed as …","Could not parse complex type from primitive","Could not parse complex type from primitive","String with no nul terminator could not be parsed as …","Could not open a file for reading","This error will never actually be created","Could not convert integer to a different integer type","CString failed to convert to UTF-8 encoded String","Given data has missing or wrong values for the action","A resource could not be found","Collection was accessed with an out-of-bounds index","Binary data could not be parsed into fields","Bytes could not be converted to UTF-8 encoded String","Failed to convert bytes to a value representation","Failed to access shared data because Mutex is poisoned","Type alias for ‘Result’ that uses our Error type","Filed to convert section to a table or array","","","","","","Returns the argument unchanged.","","","","","","","","","","","","Calls U::from(self).","","","","","","","The ELF file header parsed from the beginning of the file","Program headers extracted from an ELF file.","Section headers extracted from an ELF file.","","Get the abiversion attribute of the header","Get the sh_addralign attribute of the header","Get the sh_address attribute of the header","Get the p_align attribute of the header","Get the p_filesz attribute of the header","Get the sh_size attribute of the header","","","","","","","","","Get the ei_class attribute of the header","","","","","","","Get the ei_data attribute of the header","","Get the e_ehsize attribute of the header","Get the e_entry attribute of the header","Get the sh_entsize attribute of the header","Get the e_type attribute of the header","Get the p_filesz attribute of the header","Get the e_flags attribute of the header","Get the p_flags attribute of the header","Get the sh_flags attribute of the header","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Get the sh_info attribute of the header","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get the p_type attribute of the header","Get the sh_type attribute of the header","Get the layout (little or big-endian) of the header","Get the layout (little or big-endian) of the header","Get the layout (little or big-endian) of the header","","Get the sh_link attribute of the header","Get the e_machine attribute of the header","Get the ei_magic attribute of the header","Get the p_memsz attribute of the header","Get the sh_name attribute of the header","Create a new header with given Layout and Width","Create a new header with given Layout and Width","Create a new header with given Layout and Width","Get the p_offset attribute of the header","Get the sh_offset attribute of the header","Get the ei_osabi attribute of the header","Get the p_paddr attribute of the header","Parse a header from the provided byte buffer","Parse a header from the provided byte buffer","Parse a header from the provided byte buffer","Parse all headers for a byte array given count, offset etc.","Parse all headers for a byte array given count, offset etc.","Get the e_phentsize attribute of the header","Get the e_phnum attribute of the header","Get the e_phoff attribute of the header","Read values from a byte buffer ","Read values from a byte buffer ","Read values from a byte buffer ","Set the abiversion attribute of the header ","Set the sh_addralign attribute of the header ","Set the sh_address attribute of the header ","Set the p_align attribute of the header ","Set the p_filesz attribute of the header ","Set the sh_size attribute of the header ","Set the ei_class attribute of the header ","Set the ei_data attribute of the header ","Set the e_ehsize attribute of the header ","Set the e_entry attribute of the header ","Set the sh_entsize attribute of the header ","Set the e_type attribute of the header ","Set the p_filesz attribute of the header ","Set the e_flags attribute of the header ","Set the p_flags attribute of the header ","Set the sh_flags attribute of the header ","Set the sh_info attribute of the header ","Set the p_type attribute of the header ","Set the sh_type attribute of the header ","Set the layout of the header","Set the layout of the header","Set the layout of the header","Set the sh_link attribute of the header ","Set the e_machine attribute of the header ","Set the ei_magic attribute of the header ","Set the p_memsz attribute of the header ","Set the sh_name attribute of the header ","Set the p_offset attribute of the header ","Set the sh_offset attribute of the header ","Set the ei_osabi attribute of the header ","Set the p_paddr attribute of the header ","Set the e_phentsize attribute of the header ","Set the e_phnum attribute of the header ","Set the e_phoff attribute of the header ","Set the e_shentsize attribute of the header ","Set the e_shnum attribute of the header ","Set the e_shoff attribute of the header ","Set the e_shstrndx attribute of the header ","Set the p_vaddr attribute of the header ","Set the ei_version attribute of the header ","Set the width of the header","Set the width of the header","Set the width of the header","","","","","","","","","","","Get the e_shentsize attribute of the header","Get the e_shnum attribute of the header","Get the e_shoff attribute of the header","Get the e_shstrndx attribute of the header","The size of the header in bytes","The size of the header in bytes","The size of the header in bytes","","","","","","","","","","","","","","Get the p_vaddr attribute of the header","Get the ei_version attribute of the header","Get the width (32 or 64-bit) of the header","Get the width (32 or 64-bit) of the header","Get the width (32 or 64-bit) of the header","","Write values to a byte buffer ","Write values to a byte buffer ","Write values to a byte buffer ","","A specialization of item for reading addresses from Arrays","","A Relocation item found in relocation tables","","","A Relocation item found in relocation tables","","","Representation of the info field in a Relocation record","A String item found in string tables","","","Representation of the info field in a Symbol record","A Symbol item found in symbol tables","","","A Section represented as an immutable Table","A record that can be extracted from a table section","A Section represented as a mutable Table","Shared table interface between Table and TableMut","Get the ‘r_addend’ attribute of the relocation","Append an item to the table","Get an element from the table","Get an element from the table","Get an element from the table at a byte offset","Get an element from the table at a byte offset","Get the ‘bind’ component of the info struct","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get a slice of data that represents an item","Get a slice of data that represents an item","","","","","","","","Make a delimiter given expected entity size","Make a delimiter given expected entity size","","Initialize an empty symbol info instance","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","True if items are all the same size","True if items are all the same size","True if items can be different sizes","True if items can be different sizes","Get the ‘st_info’ attribute of the symbol","Get the ‘r_info’ attribute of the relocation","Get the ‘r_info’ attribute of the relocation","Insert an item into the table","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get all items from the table","Get all items from the table","Get an iterator over each item’s binary data","Get an iterator over each item’s binary data","Get the ‘kind’ component of the info struct","Get the ‘kind’ component of the info struct","Get the layout being used by this table","Get the layout being used by this table","Get the number of items in the table","Get the number of items in the table","Get the ‘st_name’ attribute (name index) of the symbol","Parse a combined value as an info struct","Get the offset of an item from the index","Get the offset of an item from the index","Get the ‘r_offset’ attribute of the relocation","Get the ‘r_offset’ attribute of the relocation","Get the ‘st_other’ attribute of the symbol","Parse the item directly from the byte array","Parse the item directly from the byte array","Prepend an item to the table","Read the item from a byte array","","","","","","Remove an item from the table by index","Get an immutable reference to the internal section","","","Set the ‘r_addend’ attribute of the relocation","Set the ‘st_info’ attribute of the symbol","Set the ‘r_info’ attribute of the relocation","Set the ‘r_info’ attribute of the relocation","Set the ‘kind’ component of the info struct","Set the layout if necessary","Set the layout if necessary","","","","","Set the ‘st_name’ attribute (name index) of the symbol","Set the ‘r_offset’ attribute of the relocation","Set the ‘r_offset’ attribute of the relocation","Set the ‘st_other’ attribute of the symbol","Set the ‘st_shndx’ attribute of the symbol","Set the ‘st_size’ attribute of the symbol","Set the string value of the table item","Set the ‘symbol’ component of the info struct","Set the ‘st_value’ attribute of the symbol","Set the internal value","Set the width if necessary","Set the width if necessary","","","","","Get the ‘st_shndx’ attribute of the symbol","Get the calculated size of the item","Get the number of bytes in the table","Get the number of bytes in the table","","Get the ‘st_size’ attribute of the symbol","","","","","Get the string value of the table item","Get the string value of the table item","Get the ‘symbol’ component of the info struct","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the combined value of the info struct","Get the ‘st_value’ attribute of the symbol","Get the internal value ","Get the width being used by this table","Get the width being used by this table","Write the item to a byte array","","","","","",""],"i":[0,0,0,1,22,16,1,22,16,1,1,1,0,22,16,1,1,1,1,1,0,1,22,16,1,1,1,1,1,0,22,16,1,1,1,16,1,16,1,22,1,1,16,16,16,16,1,1,16,16,16,16,16,16,16,1,1,16,16,16,16,16,1,1,1,1,1,0,1,22,16,1,22,16,1,22,16,1,16,1,0,16,1,16,1,0,17,0,0,0,14,14,14,14,0,14,0,14,14,42,14,14,14,0,0,0,0,51,17,14,14,0,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,14,14,0,14,14,14,14,34,34,34,34,34,34,34,34,34,34,34,34,0,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,0,44,44,44,0,45,45,45,45,45,45,45,0,0,14,14,0,0,0,14,42,43,0,0,51,0,24,24,86,33,86,34,34,34,34,87,86,51,49,40,41,14,33,24,17,42,43,34,44,45,87,86,51,49,40,41,14,33,24,17,42,43,34,44,45,86,40,41,14,33,24,17,42,43,34,44,45,40,41,14,33,24,17,42,43,34,44,45,37,87,86,51,49,40,41,14,33,24,24,17,17,42,42,43,43,34,44,45,86,24,17,42,43,44,45,40,41,14,24,17,42,43,34,44,45,40,41,14,24,17,42,43,34,44,45,87,86,51,49,40,41,14,14,33,24,17,42,43,43,43,34,44,45,35,43,40,41,87,86,51,49,40,41,14,33,24,17,42,43,34,44,45,49,33,33,33,40,41,33,49,33,41,33,49,40,41,33,49,34,49,33,41,0,41,33,40,41,40,41,40,41,33,40,41,40,41,33,40,41,36,40,41,14,33,24,17,42,43,34,44,45,87,86,51,49,40,41,14,33,24,24,17,17,42,42,43,34,44,44,45,45,24,17,42,43,44,45,87,86,51,49,40,41,14,33,24,17,42,43,34,44,45,49,87,86,51,49,40,41,14,33,24,17,42,43,34,44,45,88,88,49,40,41,33,41,33,40,41,33,41,33,41,40,41,33,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,70,13,13,21,21,13,70,21,13,72,70,21,13,72,70,13,13,70,21,13,72,70,72,70,70,13,70,21,70,21,13,70,21,13,72,70,21,13,13,72,13,70,21,13,72,21,13,70,21,13,72,13,70,70,21,13,70,21,13,21,13,70,21,70,21,13,21,13,70,70,70,70,21,13,70,13,13,21,21,13,70,70,70,70,13,70,21,70,21,13,13,21,13,70,21,13,13,70,70,21,13,21,13,70,21,70,70,70,70,70,70,70,21,70,70,21,13,72,72,72,72,72,72,72,72,72,72,70,70,70,70,70,21,13,13,70,21,13,72,70,21,13,72,70,21,13,72,21,70,70,21,13,72,70,21,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,11,89,89,89,89,77,12,11,77,78,79,80,81,75,82,12,11,77,78,79,80,81,75,82,77,78,79,80,81,75,82,77,78,79,80,81,75,82,12,11,77,77,78,78,78,79,80,81,75,82,89,89,77,78,79,80,81,75,82,9,9,79,77,77,78,79,81,75,82,77,78,79,80,12,12,11,77,78,79,80,81,75,82,82,89,89,89,89,80,81,75,11,12,11,77,78,79,80,81,75,82,89,89,89,89,77,78,89,89,89,89,80,77,89,89,81,75,80,9,9,11,9,79,80,81,75,82,11,89,12,11,75,80,81,75,78,9,9,80,81,75,82,80,81,75,80,80,80,79,78,80,82,9,9,80,81,75,82,80,9,89,89,79,80,80,81,75,82,79,79,78,77,78,79,80,81,75,82,12,12,12,12,12,12,11,11,11,11,11,11,77,78,79,79,79,80,81,75,82,12,11,77,78,79,80,81,75,82,12,11,77,78,79,80,81,75,82,77,80,82,89,89,9,79,80,81,75,82,0],"f":[0,0,0,[1,2],[[]],[[]],[[]],[[]],[[]],[[]],[1,1],[[]],0,[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[1,[[6,[5]]]],[1,[[6,[5]]]],[1,2],[1,2],0,[[1,7],8],[[]],[[]],[[]],[[[11,[[0,[9,10]]]]],1],[[[12,[[0,[9,10]]]]],1],[1,13],[1,13],0,[[]],[[]],[[]],[[1,14],15],[1,14],[16,17],[1,17],[[[19,[18]]],[[20,[16]]]],[1,2],[[21,[6,[5]]],22],[13,1],[1,2],[16,2],[16,2],[16,2],[[16,[23,[5]]],[[20,[2]]]],[[13,[23,[5]]],[[20,[1]]]],[[[23,[5]],2,2,2,17,24],[[20,[[6,[1]]]]]],[[16,[19,[18]]],[[20,[2]]]],[[16,2],[[20,[1]]]],[[16,2],[[20,[1]]]],[[16,2],[[20,[25]]]],[16,[[20,[[6,[25]]]]]],[[16,14],[[6,[1]]]],[[16,14],[[6,[1]]]],[[1,2]],[[1,[6,[5]]]],[16,2],[16,2],[16,2],[16,2],[16,2],[1,2],[[1,2,2],[[20,[[23,[5]]]]]],[[1,2,2],[[20,[[23,[5]]]]]],[[1,2,2],[[23,[5]]]],[[1,2,2],[[23,[5]]]],0,[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],26],[[],26],[[],26],[16],[1],0,[16,24],[1,24],[[16,[23,[5]]],[[20,[2]]]],[[1,[23,[5]],2,2],[[20,[2]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[0,[27,28,29]]]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2]],[[[0,[28,29]]]],[[34,34]],[[34,34]],[34],[[34,34]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38,39]]]],39]]]],[37,[[0,[35,36,[37,[[0,[37,37,38,39]]]],39]]]],38,39]]]],39]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38,39]]]],39]]]],[37,[[0,[35,36,[37,[[0,[37,37,38,39]]]],39]]]],38,39]]]],39]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37,39]]]],[37,[[0,[35,36,37,39]]]],38,39]]]],39]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37,39]]]],[37,[[0,[35,36,37,39]]]],38,39]]]],39]]]],38,39]]]]],[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38,39]]]],39]]]],[37,[[0,[35,36,[37,[[0,[37,37,38,39]]]],39]]]],38,39]]]],39]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38,39]]]],39]]]],[37,[[0,[35,36,[37,[[0,[37,37,38,39]]]],39]]]],38,39]]]],39]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37,39]]]],[37,[[0,[35,36,37,39]]]],38,39]]]],39]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37,39]]]],[37,[[0,[35,36,37,39]]]],38,39]]]],39]]]],38,39]]]]]],[[[41,[[0,[[31,[[0,[[30,[[0,[[31,[[0,[30,39]]]],39]],[0,[[32,[[0,[30,39]]]],39]]]],39]]]],39]],[0,[[32,[[0,[[30,[[0,[[31,[[0,[30,39]]]],39]],[0,[[32,[[0,[30,39]]]],39]]]],39]]]],39]],[0,[[30,[[0,[[31,[[0,[[30,[[0,[31,39]],[0,[32,39]]]],39]]]],39]],[0,[[32,[[0,[[30,[[0,[31,39]],[0,[32,39]]]],39]]]],39]]]],39]]]]],[[41,[[0,[[31,[[0,[[30,[[0,[[31,[[0,[30,39]]]],39]],[0,[[32,[[0,[30,39]]]],39]]]],39]]]],39]],[0,[[32,[[0,[[30,[[0,[[31,[[0,[30,39]]]],39]],[0,[[32,[[0,[30,39]]]],39]]]],39]]]],39]],[0,[[30,[[0,[[31,[[0,[[30,[[0,[31,39]],[0,[32,39]]]],39]]]],39]],[0,[[32,[[0,[[30,[[0,[31,39]],[0,[32,39]]]],39]]]],39]]]],39]]]]]],[14,14],[[[33,[[0,[[31,[[0,[[30,[[0,[[31,[[0,[30,39]]]],39]],[0,[[32,[[0,[30,39]]]],39]]]],39]]]],39]],[0,[[32,[[0,[[30,[[0,[[31,[[0,[30,39]]]],39]],[0,[[32,[[0,[30,39]]]],39]]]],39]]]],39]],[0,[[30,[[0,[[31,[[0,[[30,[[0,[31,39]],[0,[32,39]]]],39]]]],39]],[0,[[32,[[0,[[30,[[0,[31,39]],[0,[32,39]]]],39]]]],39]]]],39]]]]],[[33,[[0,[[31,[[0,[[30,[[0,[[31,[[0,[30,39]]]],39]],[0,[[32,[[0,[30,39]]]],39]]]],39]]]],39]],[0,[[32,[[0,[[30,[[0,[[31,[[0,[30,39]]]],39]],[0,[[32,[[0,[30,39]]]],39]]]],39]]]],39]],[0,[[30,[[0,[[31,[[0,[[30,[[0,[31,39]],[0,[32,39]]]],39]]]],39]],[0,[[32,[[0,[[30,[[0,[31,39]],[0,[32,39]]]],39]]]],39]]]],39]]]]]],[24,24],[17,17],[42,42],[43,43],[34,34],[44,44],[45,45],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[20,[46]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[24,[[20,[5]]]],[[],[[4,[3]]]],[17,[[20,[5]]]],[[],[[4,[3]]]],[42,[[20,[47]]]],[43,[[20,[47]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],2],[[],24],[[],17],[[],42],[[],43],[[],44],[[],45],[[],[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]]]],[[[41,[[31,[[0,[[30,[[31,[[0,[30,48]]]],[32,[[0,[30,48]]]]]],48]]]],[32,[[0,[[30,[[31,[[0,[30,48]]]],[32,[[0,[30,48]]]]]],48]]]],[0,[[30,[[31,[[0,[[30,[31,32]],48]]]],[32,[[0,[[30,[31,32]],48]]]]]],48]]]],[41,[[31,[[0,[[30,[[31,[[0,[30,48]]]],[32,[[0,[30,48]]]]]],48]]]],[32,[[0,[[30,[[31,[[0,[30,48]]]],[32,[[0,[30,48]]]]]],48]]]],[0,[[30,[[31,[[0,[[30,[31,32]],48]]]],[32,[[0,[[30,[31,32]],48]]]]]],48]]]]],15],[[14,14],15],[[24,24],15],[[17,17],15],[[42,42],15],[[43,43],15],[[34,34],15],[[44,44],15],[[45,45],15],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38,38]]]],38]]]],[37,[[0,[35,36,[37,[[0,[37,37,38,38]]]],38]]]],38,38]]]],38]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38,38]]]],38]]]],[37,[[0,[35,36,[37,[[0,[37,37,38,38]]]],38]]]],38,38]]]],38]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37,38]]]],[37,[[0,[35,36,37,38]]]],38,38]]]],38]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37,38]]]],[37,[[0,[35,36,37,38]]]],38,38]]]],38]]]],38,38]]]],7],8],[[[41,[[0,[[31,[[0,[[30,[[0,[[31,[[0,[30,38]]]],38]],[0,[[32,[[0,[30,38]]]],38]]]],38]]]],38]],[0,[[32,[[0,[[30,[[0,[[31,[[0,[30,38]]]],38]],[0,[[32,[[0,[30,38]]]],38]]]],38]]]],38]],[0,[[30,[[0,[[31,[[0,[[30,[[0,[31,38]],[0,[32,38]]]],38]]]],38]],[0,[[32,[[0,[[30,[[0,[31,38]],[0,[32,38]]]],38]]]],38]]]],38]]]],7],8],[[14,7],8],[[24,7],8],[[17,7],8],[[42,7],8],[[43,7],8],[[34,7],8],[[44,7],8],[[45,7],8],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[43,14],[[]],[[]],[[]],[[]],[14,43],[[]],[47,43],[[]],[[]],[[]],[[[23,[5]],17],[[20,[46]]]],[[],43],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]],[23,[5]]],[[20,[[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]]]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]],[[30,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2],2],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]],2],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],[23,[5]]],49],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]]],17],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]],17],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]],17],[[[23,[5]],2],49],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2],2],[[50,24,17],[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[50,24,17],[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[23,[5]],51],49],[50,[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]]]],[50,[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[50,[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[49,52],[34],[[49,2],49],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]],2],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],[23,[5]]],[[20,[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]]]],0,[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],[23,[5]]],[[20,[[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],[23,[5]],2],[[20,[[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]],[23,[5]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]]]],38]]],20],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],[30,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]]]]]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]],2]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]],17]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],17]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],17]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]],2]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]],24]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],24]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],24]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]]],2],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]],2],[[[23,[5]],17],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[5,[[4,[24,[53,[24]]]]]],[5,[[4,[17,[53,[17]]]]]],[[],4],[[],4],[47,[[4,[42,[53,[42]]]]]],[[],4],[[],4],[[],4],[5,[[4,[44,[53,[44]]]]]],[5,[[4,[45,[53,[45]]]]]],[[],4],[[],[[4,[24,[53,[24]]]]]],[[],[[4,[17,[53,[17]]]]]],[[],[[4,[42,[53,[42]]]]]],[[],[[4,[43,[53,[43]]]]]],[[],[[4,[44,[53,[44]]]]]],[[],[[4,[45,[53,[45]]]]]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[49,[54,[2]]],[[20,[49]]]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[[0,[28,29,46]]]],[[[0,[28,29,46]]]],[[[23,[5]],5],49],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]]],24],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]],24],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]],24],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2],[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2],[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]],17],[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]]]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],17],[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],17],[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2],[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],2],[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],[30,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]]]]],[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]],24],[[40,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[35,36,[37,[[0,[[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],[37,[[0,[35,36,[37,[[0,[37,37,38]]]]]]]],38]]]]]],[0,[[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],[37,[[0,[35,36,[37,[[0,[[37,[[0,[35,36,37]]]],[37,[[0,[35,36,37]]]],38]]]]]]]],38]]]]]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],24],[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],24],[[33,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]]]],[[[41,[[31,[[30,[[31,[30]],[32,[30]]]]]],[32,[[30,[[31,[30]],[32,[30]]]]]],[30,[[31,[[30,[31,32]]]],[32,[[30,[31,32]]]]]]]],[23,[5]]],20],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[50,[[55,[2]]]],[50,[[55,[2]]]],[[]],[[]],[50,50],[[]],[[],[[4,[3]]]],[[],50],[[50,7],8],[[]],[50,[[55,[2]]]],[[]],[50,[[55,[2]]]],[[[55,[2]],[55,[2]]],50],[50,2],[[]],[[],4],[[],4],[[],26],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[],[[4,[3]]]],[[3,7],8],[[3,7],8],[[]],[56,3],[57,3],[58,3],[59,3],[60,3],[61,3],[62,3],[[[64,[63]]],3],[65,3],[66,3],[[[53,[67]]],3],[[]],[68],[3,[[52,[69]]]],[[],25],[[],4],[[],4],[[],26],0,0,0,0,[70,5],[13,71],[13,71],[21,71],[21,2],[13,2],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[70,24],[13,13],[[]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[70,17],[[],72],[70,73],[70,71],[13,2],[70,73],[21,2],[70,47],[21,47],[13,[[74,[34]]]],[[70,7],8],[[21,7],8],[[13,7],8],[[72,7],8],[[]],[[]],[72,13],[[]],[[]],[13,47],[[]],[[]],[[]],[[]],[21,42],[13,43],[70,17],[21,17],[13,17],0,[13,47],[70,73],[70,25],[21,71],[13,47],[[],70],[[17,24],21],[[17,24],13],[21,2],[13,2],[70,5],[21,71],[[[23,[5]]],[[20,[70]]]],[[[23,[5]],17,24],[[20,[21]]]],[[[23,[5]],17,24],[[20,[13]]]],[[[23,[5]],2,2,2,17,24],[[20,[[6,[21]]]]]],[[[23,[5]],2,2,2,17,24],[[20,[[6,[13]]]]]],[70,2],[70,2],[70,2],[[70,[23,[5]]],20],[[21,[23,[5]]],20],[[13,[23,[5]]],20],[[70,5]],[[13,71]],[[13,71]],[[21,71]],[[21,2]],[[13,2]],[[70,24]],[[70,17]],[[70,73]],[[70,71]],[[13,2]],[[70,73]],[[21,2]],[[70,47]],[[21,47]],[[13,[74,[34]]]],[[13,47]],[[21,42]],[[13,43]],[[70,17]],[[21,17]],[[13,17]],[[13,47]],[[70,73]],[[70,25]],[[21,71]],[[13,47]],[[21,2]],[[13,2]],[[70,5]],[[21,71]],[[70,2]],[[70,2]],[[70,2]],[[70,2]],[[70,2]],[[70,2]],[[70,2]],[[21,71]],[[70,5]],[[70,24]],[[21,24]],[[13,24]],0,0,0,0,0,0,0,0,0,0,[70,2],[70,2],[70,2],[70,2],[70,2],[21,2],[13,2],[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],26],[[],26],[[],26],[[],26],[21,71],[70,5],[70,24],[21,24],[13,24],0,[[70,[23,[5]]],20],[[21,[23,[5]]],20],[[13,[23,[5]]],20],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[75,76],[[[11,[[0,[9,10]]]],[0,[9,10]]],[[20,[2]]]],[2,20],[2,20],[2,20],[2,20],[77,44],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[77,77],[78,78],[79,79],[80,80],[81,81],[75,75],[82,82],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[4,[3]]]],[[],[[4,[3]]]],[77,[[20,[5]]]],[[],[[4,[3]]]],[78,[[20,[71]]]],[[],[[4,[3]]]],[78,[[20,[47]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[2,[[20,[[23,[5]]]]]],[2,[[20,[[23,[5]]]]]],[[],77],[[],78],[[],79],[[],80],[[],81],[[],75],[[],82],[2,51],[2,51],[2,51],[[],77],[[77,77],15],[[78,78],15],[[79,79],15],[[81,81],15],[[75,75],15],[[82,82],15],[[77,7],8],[[78,7],8],[[79,7],8],[[80,7],8],[[[11,[[0,[9,10]]]]],[[12,[[0,[9,10]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[76,82],[[]],[[],15],[[],15],[[],15],[[],15],[80,77],[81,78],[75,78],[[[11,[[0,[9,10]]]],2,[0,[9,10]]],[[20,[2]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[20,[6]]]],[[],[[20,[6]]]],[[],49],[[],49],[77,45],[78,5],[[],17],[[],17],[[],2],[[],2],[80,47],[5,[[20,[77]]]],[2,2],[2,2],[81,71],[75,71],[80,5],[[[23,[5]],1],[[20,[46]]]],[[[23,[5]],1],[[20,[46]]]],[[[11,[[0,[9,10]]]],[0,[9,10]]],[[20,[2]]]],[[[23,[5]]],20],[[79,[23,[5]]],20],[[80,[23,[5]]],20],[[81,[23,[5]]],20],[[75,[23,[5]]],20],[[82,[23,[5]]],20],[[[11,[[0,[9,10]]]],2],[[20,[[0,[9,10]]]]]],[[],1],[[[12,[[0,[9,10]]]]],1],[[[11,[[0,[9,10]]]]],1],[[75,76]],[[80,77]],[[81,78]],[[75,78]],[[78,5]],[17],[17],[[80,17]],[[81,17]],[[75,17]],[[82,17]],[[80,47]],[[81,71]],[[75,71]],[[80,5]],[[80,73]],[[80,71]],[[79,25],20],[[78,71]],[[80,71]],[[82,76]],[24],[24],[[80,24]],[[81,24]],[[75,24]],[[82,24]],[80,73],[[],2],[[],2],[[],2],[79,2],[80,71],[80,2],[81,2],[75,2],[82,2],[79,[[20,[25]]]],[79,25],[78,71],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[20,[[12,[79]]]]]],[[],4],[1,[[20,[[12,[75]]]]]],[1,[[20,[[12,[80]]]]]],[1,[[20,[[12,[81]]]]]],[1,[[20,[[12,[82]]]]]],[1,[[20,[[11,[80]]]]]],[1,[[20,[[11,[75]]]]]],[1,[[20,[[11,[82]]]]]],[1,[[20,[[11,[79]]]]]],[[],4],[1,[[20,[[11,[81]]]]]],[[],4],[[],4],[83,[[20,[79]]]],[25,[[20,[79]]]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[77,5],[80,71],[82,76],[[],24],[[],24],[[[23,[5]]],20],[[79,[23,[5]]],20],[[80,[23,[5]]],20],[[81,[23,[5]]],20],[[75,[23,[5]]],20],[[82,[23,[5]]],20],[[[85,[84]]],[[20,[[6,[5]]]]]]],"c":[],"p":[[3,"Section"],[15,"usize"],[4,"Error"],[4,"Result"],[15,"u8"],[3,"Vec"],[3,"Formatter"],[6,"Result"],[8,"TableItem"],[8,"Default"],[3,"TableMut"],[3,"Table"],[3,"SectionHeader"],[4,"SectionType"],[15,"bool"],[3,"Binary"],[4,"Layout"],[3,"Path"],[8,"AsRef"],[6,"Result"],[3,"ProgramHeader"],[3,"Segment"],[15,"slice"],[4,"Width"],[3,"String"],[3,"TypeId"],[8,"Fn"],[8,"Send"],[8,"Sync"],[8,"TOutValue"],[8,"T32Value"],[8,"T64Value"],[3,"ItemArray"],[4,"SHFlags"],[8,"FromBytes"],[8,"IntoBytes"],[8,"Convert"],[8,"Debug"],[8,"Clone"],[3,"Field"],[3,"Item"],[4,"PHType"],[4,"SHType"],[4,"STBind"],[4,"STType"],[8,"Sized"],[15,"u32"],[8,"PartialEq"],[3,"ByteIter"],[3,"Ranges"],[4,"ByteDelimiter"],[4,"Option"],[3,"TryFromPrimitiveError"],[8,"TryInto"],[3,"Range"],[3,"IntoStringError"],[3,"TryFromSliceError"],[3,"PoisonError"],[3,"FromBytesWithNulError"],[3,"Error"],[3,"Utf8Error"],[3,"TryFromIntError"],[8,"BitFlag"],[3,"FromBitsError"],[4,"Infallible"],[3,"NulError"],[8,"TryFromPrimitive"],[3,"Demand"],[8,"Error"],[3,"FileHeader"],[15,"u64"],[3,"SectionHeaderData"],[15,"u16"],[3,"BitFlags"],[3,"RelaItem"],[15,"i64"],[3,"SymbolInfo"],[3,"RelocationInfo"],[3,"StringItem"],[3,"SymbolItem"],[3,"RelItem"],[3,"ArrayItem"],[15,"str"],[3,"PathBuf"],[8,"Into"],[3,"Update"],[3,"All"],[8,"Updateable"],[8,"TableView"]]}\ +"deaf":{"doc":"","t":"DDDLLLLLLLLLALLLLLLLLLALLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLALLLLLDNEDINNNNDNINNNNNNIDDENNNNENNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNENNNNNNNENNNNEENNIIINNNDINENNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRRRRRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLLLLMMMNENNNNNNNNNNNNNNNGNNLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLMLLLGDGDGGDGGDDGGGGDIDILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLKLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLF","n":["Binary","Section","Segment","body_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","common","convert","convert","convert","data","data","data_mut","end","entity_count","entity_size","errors","fmt","from","from","from","from","from","functions","functions_ex","header","header_mut","headers","into","into","into","is_kind","kind","layout","layout","load","name","name_index","new","new","offset","phentsize","phnum","phoff","process","read","read","read_all","save","section","section_for_address","section_mut","section_name","section_names","sections","sections_mut","set_body_size","set_data","set_name","shentsize","shnum","shoff","shstrndx","size","size","slice","slice_mut","slice_mut_unchecked","slice_unchecked","start","string_tables","symbol_name","symbol_tables","symbol_tables_mut","symbols","tables","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update","utilities","width","width","with_name","write","write","All","Big","ByteDelimiter","ByteIter","Convert","Dynamic","DynamicSymbols","Empty","ExtendedSymbols","Field","FiniArray","FromBytes","GNUHash","GNULibList","GNU_RELRO","Group","Hash","InitArray","IntoBytes","Item","ItemArray","Layout","Length","Little","Notes","Null","PHType","PT_DYNAMIC","PT_GNU_EH_FRAME","PT_GNU_PROPERTY","PT_GNU_STACK","PT_HIOS","PT_HIPROC","PT_INTERP","PT_LOAD","PT_LOOS","PT_LOPROC","PT_NOTE","PT_NULL","PT_PHDR","PT_SHLIB","PT_TLS","PreInitArray","Program","Ranges","Relocations","RelocationsAddend","Reserved","ReservedTypes","SHF_ALLOC","SHF_EXCLUDE","SHF_EXECINSTR","SHF_GROUP","SHF_INFO_LINK","SHF_LINK_ORDER","SHF_MERGE","SHF_ORDERED","SHF_OS_NONCONFORMING","SHF_STRINGS","SHF_TLS","SHF_WRITE","SHFlags","SHT_ARM_ATTRIBUTES","SHT_ARM_DEBUGOVERLAY","SHT_ARM_EXIDX","SHT_ARM_OVERLAYSECTION","SHT_ARM_PREEMPTMAP","SHT_DYNAMIC","SHT_DYNSYM","SHT_FINI_ARRAY","SHT_GNU_HASH","SHT_GNU_LIBLIST","SHT_GROUP","SHT_HASH","SHT_INIT_ARRAY","SHT_LOOS","SHT_NOBITS","SHT_NOTE","SHT_NULL","SHT_NUM","SHT_PREINIT_ARRAY","SHT_PROGBITS","SHT_REL","SHT_RELA","SHT_SHLIB","SHT_STRTAB","SHT_SYMTAB","SHT_SYMTAB_SHNDX","SHT_VERDEF","SHT_VERNEED","SHT_VERSYM","SHType","STB_GLOBAL","STB_LOCAL","STB_WEAK","STBind","STT_COMMON","STT_FILE","STT_FUNC","STT_NOTYPE","STT_OBJECT","STT_SECTION","STT_TLS","STType","STV_DEFAULT","STV_HIDDEN","STV_INTERNAL","STV_PROTECTED","STVisibility","SectionType","Strings","Symbols","T32Value","T64Value","TOutValue","Unknown","Unknown","Unknown","Update","Updateable","Value","Width","X32","X64","add","add_offset","apply","bitand","bitor","bits","bitxor","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","convert","count","default","default","default","default","default","default","default","empty","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_primitive","from_primitive","from_primitive","from_primitive","get","get","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","item_offset","item_size","iterator","layout","layout","layout","length","length","make","make","new","new","new","new","next","not","offset","offset","parse","ranges","read","read","set","set","set_index","set_index","set_layout","set_layout","set_layout","set_offset","set_offset","set_width","set_width","set_width","size","size","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_primitive","try_from_primitive","try_from_primitive","try_from_primitive","try_from_primitive","try_from_primitive","try_from_primitive","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_offset","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update","update","value","width","width","width","with_index","with_last_offset","with_layout","with_layout","with_layout","with_offset","with_offset","with_value","with_width","with_width","with_width","write","ADDRESS","BLOOMSHIFT","BLOOMSIZE","EI_ABIVERSION","EI_CLASS","EI_DATA","EI_KEY","EI_MAGIC","EI_OSABI","EI_PAD","EI_VERSION","E_EHSIZE","E_ENTRY","E_FLAGS","E_MACHINE","E_PHENTSIZE","E_PHNUM","E_PHOFF","E_SHENTSIZE","E_SHNUM","E_SHOFF","E_SHSTRNDX","E_TYPE","E_VERSION","NBUCKETS","NCHAIN","P_ALIGN","P_FILESZ","P_FLAGS","P_MEMSZ","P_OFFSET","P_PADDR","P_TYPE","P_VADDR","RT_ADDEND","RT_INFO","RT_OFFSET","Ranges","SH_ADDR","SH_ADDRALIGN","SH_ENTSIZE","SH_FLAGS","SH_INFO","SH_LINK","SH_NAME","SH_OFFSET","SH_SIZE","SH_TYPE","ST_INFO","ST_NAME","ST_OTHER","ST_SHNDX","ST_SIZE","ST_VALUE","SYMOFFSET","VALUE4","VALUE8","at","at_mut","borrow","borrow_mut","clone","clone_into","convert","empty","fmt","from","get","into","into","new","size","to_owned","try_from","try_into","type_id","width","x32","x64","ConversionError","Error","FromBytesWithNulError","FromComplexError","FromPrimitiveError","FromStringError","IOError","InfallibleError","IntConvertError","IntoStringError","MalformedDataError","NotFound","OutOfBoundsError","ParseError","ParseUtf8Error","ParseValueError","PoisonError","Result","WrongSectionError","WrongTypeError","borrow","borrow_mut","convert","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","into","provide","source","to_string","try_from","try_into","type_id","FileHeader","ProgramHeader","SectionHeader","SectionHeaderData","abiversion","addralign","address","align","body_size","body_size","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","class","clone","clone_into","convert","convert","convert","convert","data","default","ehsize","entry","entsize","file_type","filesz","flags","flags","flags","fmt","fmt","fmt","fmt","from","from","from","from","from","info","into","into","into","into","kind","kind","layout","layout","layout","layout","link","machine","magic","memsz","name_index","new","new","new","offset","offset","osabi","paddr","parse","parse","parse","parse_all","parse_all","phentsize","phnum","phoff","read","read","read","set_abiversion","set_addralign","set_address","set_align","set_body_size","set_body_size","set_class","set_data","set_ehsize","set_entry","set_entsize","set_file_type","set_filesz","set_flags","set_flags","set_flags","set_info","set_kind","set_kind","set_layout","set_layout","set_layout","set_link","set_machine","set_magic","set_memsz","set_name_index","set_offset","set_offset","set_osabi","set_paddr","set_phentsize","set_phnum","set_phoff","set_shentsize","set_shnum","set_shoff","set_shstrndx","set_vaddr","set_version","set_width","set_width","set_width","sh_addralign","sh_address","sh_entsize","sh_flags","sh_info","sh_link","sh_name","sh_offset","sh_size","sh_type","shentsize","shnum","shoff","shstrndx","size","size","size","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vaddr","version","width","width","width","width","write","write","write","Array","ArrayItem","ArrayMut","RelItem","RelTable","RelTableMut","RelaItem","RelaTable","RelaTableMut","RelocationInfo","StringItem","StringTable","StringTableMut","SymbolTable","SymbolTableMut","Table","TableItem","TableMut","TableView","addend","append","at","at","at_offset","at_offset","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","convert","convert","convert","convert","convert","convert","convert","convert","convert","data","data","default","default","default","default","default","delimiter","delimiter","delimiter","eq","eq","eq","eq","eq","fmt","fmt","from","from","from","from","from","from","from","from","from","has_fixed_size","has_fixed_size","has_variable_size","has_variable_size","info","info","insert","into","into","into","into","into","into","into","items","items","iterator","iterator","kind","layout","layout","len","len","name_index","name_index","offset","offset","offset","offset","parse","parse","prepend","read","read","read","read","read","remove","section","section","section","set_addend","set_info","set_info","set_kind","set_layout","set_layout","set_layout","set_layout","set_layout","set_offset","set_offset","set_string","set_symbol","set_value","set_width","set_width","set_width","set_width","set_width","size","size","size","size","size","size","size","string","string_lossy","symbol","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","value","width","width","write","write","write","write","write","read"],"q":[[0,"deaf"],[100,"deaf::common"],[511,"deaf::common::ranges"],[590,"deaf::errors"],[634,"deaf::headers"],[794,"deaf::tables"],[994,"deaf::utilities"]],"d":["An ELF formatted binary file","A Section extracted from an ELF file","A Segment extracted from an ELF file","","","","","","","","","","Common structs and types used by all other modules","","","","","","","","","","A custom error type that aggregates internal errors","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","File, program and section header definitions","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Get the layout of the file (little or big endian)","","","","","Create a new segment from a program header","Create a new section from a program header","","Get the size of program headers","Get the number of program headers in the file","Get the offset of the program header table","","","","Parse all sections for a byte array given count, offset …","","","","","","","","","","","","Get the size of section headers","Get the number of section headers in the file","Get the offset of the section header table","","","","","","","","","Get all string tables except the ‘shstrtab’","","","","","Various types of tables and associated table items","","","","","","","","","","","","","Utility functions for both testing and execution","Get the addressing width of the file (32, 64 etc)","","","","","Placeholder target for Update","Big endian (e.g. 0xABCD is represented as ‘AB CD’ )","The delimiter used to determine the ending index of …","An iterator that uses a delimiting value or length to …","Convert a value into another value","","","","","A single field in a section, table item etc.","","Parse an object from bytes","","","","","","","Convert an object into bytes","An item in a section, table item etc that contains a field ","","The endianness of the ELF file","","Little endian (e.g. 0xABCD is represented as ‘CD AB’)","","","The type of a program header","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The flags of a particular section header","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The type of a section header","","","","The binding of a symbol entry from a static or dynamic …","","","","","","","","The type of a symbol entry from a static or dynamic symbol …","The visibility is as specified by the symbol binding type","This symbol is protected and not externally visible","This visibility attribute is currently reserved","External references must be resolved externally","The binding of a symbol entry from a static or dynamic …","","","","","","","","","","Update for an object of type T","Trait to add an update function to structs that can be …","","The mode of the ELF file","Mode of the ELF file is 32-bit","Mode of the ELF file is 64-bit","Add a new update for type T","Set the offset of the array in the parsed data","Apply all updates for type T","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Clear all updates of type T","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Count updates of type T","","","","","","","","Create a new field with an empty range","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Read the buffer and convert into the output value","Get the output value of the item","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Get the offset of a particular index in the array","Get the size of the item for the current width","Get an iterator over slices of the data","Get the layout of the field","Get the layout (little- or big-endian) of the item","Get the layout (little- or big-endian) of the item","Create a new iterator with a length delimiter","Get the length of the array, given the item count","Create a new item with ranges, width and layout","Create a new item array with given ranges, layout, and …","Create a new byte iterator with data and a delimiter","Create a new field from given ranges","Create a new item with given ranges","Create a new item array with given ranges","","","Skip directly to an offset in the data","Get the total offset at which the array will read","Builder method to parse a byte buffer","","Read the value if possible","Read a value at a particular index in the data","Convert output value and write to the buffer","Set the output value of the item","Set an index based on field size to read at","Set an index based on field size to read at","Set the layout of the field","Set the layout (little- or big-endian) of the item","Set the layout (little- or big-endian) of the item","Set an offset in bytes to read at","Set an offset in bytes to read at","Set the width of the field","Set the width (32- or 64-bit) of the item","Set the width (32- or 64-bit) of the item","The expected size in bytes of the output/input buffers","Get the size of the item if there is a value","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Skip directly to an offset in the data","","","","","","","","","","","","","","","","","","","Create a new iterator with a value delimiter","Get the width of the field","Get the width (32- or 64-bit) of the item","Get the width (32- or 64-bit) of the item","Builder method to set an index","Builder method to set the last offset for the array","Builder method to set the layout of the field","Builder method to set the initial layout","Builder method to set the initial layout","Builder method to set an offset","Builder method to add an array offset","Builder method to set the initial value","Builder method to set the width of the field","Builder method to set the initial width","Builder method to set the initial width","Write the value if there is one","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This struct maintains several ranges and returns them …","","","","","","","","","","","","","","","","","","","","Get a reference to the current Range","Get at mutable reference to the current Range","","","","","","Create an empty set of ranges","","Returns the argument unchanged.","Get the active Range depending on the current Width","","Calls U::from(self).","Create a new set of ranges given a 32- and 64-bit Range","Get the expected size in bytes of the current range","","","","","","","","A value could not be converted to a different …","Custom error type used everywhere in this crate","Bytes with no nul terminator could not be parsed as …","Could not parse complex type from primitive","Could not parse complex type from primitive","String with no nul terminator could not be parsed as …","Could not open a file for reading","This error will never actually be created","Could not convert integer to a different integer type","CString failed to convert to UTF-8 encoded String","Given data has missing or wrong values for the action","A resource could not be found","Collection was accessed with an out-of-bounds index","Binary data could not be parsed into fields","Bytes could not be converted to UTF-8 encoded String","Failed to convert bytes to a value representation","Failed to access shared data because Mutex is poisoned","Type alias for ‘Result’ that uses our Error type","Filed to convert section to a table or array","Filed to convert type to some specialized type","","","","","","","","","","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","","","","","","","The ELF file header parsed from the beginning of the file","Program headers extracted from an ELF file.","Section headers extracted from an ELF file.","","Get the abiversion attribute of the header","Get the sh_addralign attribute of the header","Get the sh_address attribute of the header","Get the p_align attribute of the header","Get the p_filesz attribute of the header","Get the sh_size attribute of the header","","","","","","","","","Get the ei_class attribute of the header","","","","","","","Get the ei_data attribute of the header","","Get the e_ehsize attribute of the header","Get the e_entry attribute of the header","Get the sh_entsize attribute of the header","Get the e_type attribute of the header","Get the p_filesz attribute of the header","Get the e_flags attribute of the header","Get the p_flags attribute of the header","Get the sh_flags attribute of the header","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Get the sh_info attribute of the header","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get the p_type attribute of the header","Get the sh_type attribute of the header","Get the layout (little or big-endian) of the header","Get the layout (little or big-endian) of the header","Get the layout (little or big-endian) of the header","","Get the sh_link attribute of the header","Get the e_machine attribute of the header","Get the ei_magic attribute of the header","Get the p_memsz attribute of the header","Get the sh_name attribute of the header","Create a new header with given Layout and Width","Create a new header with given Layout and Width","Create a new header with given Layout and Width","Get the p_offset attribute of the header","Get the sh_offset attribute of the header","Get the ei_osabi attribute of the header","Get the p_paddr attribute of the header","Parse a header from the provided byte buffer","Parse a header from the provided byte buffer","Parse a header from the provided byte buffer","Parse all headers for a byte array given count, offset etc.","Parse all headers for a byte array given count, offset etc.","Get the e_phentsize attribute of the header","Get the e_phnum attribute of the header","Get the e_phoff attribute of the header","Read values from a byte buffer ","Read values from a byte buffer ","Read values from a byte buffer ","Set the abiversion attribute of the header ","Set the sh_addralign attribute of the header ","Set the sh_address attribute of the header ","Set the p_align attribute of the header ","Set the p_filesz attribute of the header ","Set the sh_size attribute of the header ","Set the ei_class attribute of the header ","Set the ei_data attribute of the header ","Set the e_ehsize attribute of the header ","Set the e_entry attribute of the header ","Set the sh_entsize attribute of the header ","Set the e_type attribute of the header ","Set the p_filesz attribute of the header ","Set the e_flags attribute of the header ","Set the p_flags attribute of the header ","Set the sh_flags attribute of the header ","Set the sh_info attribute of the header ","Set the p_type attribute of the header ","Set the sh_type attribute of the header ","Set the layout of the header","Set the layout of the header","Set the layout of the header","Set the sh_link attribute of the header ","Set the e_machine attribute of the header ","Set the ei_magic attribute of the header ","Set the p_memsz attribute of the header ","Set the sh_name attribute of the header ","Set the p_offset attribute of the header ","Set the sh_offset attribute of the header ","Set the ei_osabi attribute of the header ","Set the p_paddr attribute of the header ","Set the e_phentsize attribute of the header ","Set the e_phnum attribute of the header ","Set the e_phoff attribute of the header ","Set the e_shentsize attribute of the header ","Set the e_shnum attribute of the header ","Set the e_shoff attribute of the header ","Set the e_shstrndx attribute of the header ","Set the p_vaddr attribute of the header ","Set the ei_version attribute of the header ","Set the width of the header","Set the width of the header","Set the width of the header","","","","","","","","","","","Get the e_shentsize attribute of the header","Get the e_shnum attribute of the header","Get the e_shoff attribute of the header","Get the e_shstrndx attribute of the header","The size of the header in bytes","The size of the header in bytes","The size of the header in bytes","","","","","","","","","","","","","","Get the p_vaddr attribute of the header","Get the ei_version attribute of the header","Get the width (32 or 64-bit) of the header","Get the width (32 or 64-bit) of the header","Get the width (32 or 64-bit) of the header","","Write values to a byte buffer ","Write values to a byte buffer ","Write values to a byte buffer ","","A specialization of item for reading addresses from Arrays","","A Relocation item found in relocation tables","","","A Relocation item found in relocation tables","","","Representation of the info field in a Relocation record","A String item found in string tables","","","","","A Section represented as an immutable Table","A record that can be extracted from a table section","A Section represented as a mutable Table","Shared table interface between Table and TableMut","Get the ‘r_addend’ attribute of the relocation","Append an item to the table","Get an element from the table","Get an element from the table","Get an element from the table at a byte offset","Get an element from the table at a byte offset","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get a slice of data that represents an item","Get a slice of data that represents an item","","","","","","Make a delimiter given expected entity size","Make a delimiter given expected entity size","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","True if items are all the same size","True if items are all the same size","True if items can be different sizes","True if items can be different sizes","Get the ‘r_info’ attribute of the relocation","Get the ‘r_info’ attribute of the relocation","Insert an item into the table","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get all items from the table","Get all items from the table","Get an iterator over each item’s binary data","Get an iterator over each item’s binary data","Get the ‘kind’ component of the info struct","Get the layout being used by this table","Get the layout being used by this table","Get the number of items in the table","Get the number of items in the table","Get the name index of the internal section","Get the name index of the internal section","Get the offset of an item from the index","Get the offset of an item from the index","Get the ‘r_offset’ attribute of the relocation","Get the ‘r_offset’ attribute of the relocation","Parse the item directly from the byte array","Parse the item directly from the byte array","Prepend an item to the table","Read the item from a byte array","","","","","Remove an item from the table by index","Get an immutable reference to the internal section","","","Set the ‘r_addend’ attribute of the relocation","Set the ‘r_info’ attribute of the relocation","Set the ‘r_info’ attribute of the relocation","Set the ‘kind’ component of the info struct","Set the layout if necessary","Set the layout if necessary","","","","Set the ‘r_offset’ attribute of the relocation","Set the ‘r_offset’ attribute of the relocation","Set the string value of the table item","Set the ‘symbol’ component of the info struct","Set the internal value","Set the width if necessary","Set the width if necessary","","","","Get the calculated size of the item","Get the number of bytes in the table","Get the number of bytes in the table","","","","","Get the string value of the table item","Get the string value of the table item","Get the ‘symbol’ component of the info struct","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the internal value ","Get the width being used by this table","Get the width being used by this table","Write the item to a byte array","","","","",""],"i":[0,0,0,1,23,5,1,23,5,1,1,1,0,23,5,1,5,1,1,1,1,1,0,1,23,5,1,1,1,5,5,1,1,0,23,5,1,1,1,5,1,5,1,1,23,1,1,5,5,5,5,5,1,1,5,5,5,5,5,5,5,5,1,1,1,5,5,5,5,5,1,1,1,1,1,1,5,5,5,5,5,0,1,23,5,1,23,5,1,23,5,1,5,1,0,5,1,1,5,1,0,18,0,0,0,16,16,16,16,0,16,0,16,16,45,16,16,16,0,0,0,0,55,18,16,16,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,16,16,0,16,16,16,16,37,37,37,37,37,37,37,37,37,37,37,37,0,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,0,47,47,47,0,48,48,48,48,48,48,48,0,49,49,49,49,0,0,16,16,0,0,0,16,45,46,0,0,55,0,25,25,88,36,88,37,37,37,37,89,88,55,53,43,44,16,36,25,18,45,46,37,47,48,49,89,88,55,53,43,44,16,36,25,18,45,46,37,47,48,49,88,43,44,16,36,25,18,45,46,37,47,48,49,43,44,16,36,25,18,45,46,37,47,48,49,40,89,88,55,53,43,44,16,36,25,25,18,18,45,45,46,46,37,47,48,49,88,25,18,45,46,47,48,49,43,44,16,25,18,45,46,37,47,48,49,43,44,16,25,18,45,46,37,47,48,49,89,88,55,53,43,44,16,16,36,25,18,45,46,46,46,37,47,47,48,48,49,49,38,46,47,48,49,43,44,89,88,55,53,43,44,16,36,25,18,45,46,37,47,48,49,53,36,36,36,43,44,36,53,36,44,36,53,43,44,36,53,37,53,36,44,0,44,36,43,44,43,44,43,44,36,43,44,43,44,36,43,44,39,43,44,16,36,25,18,45,46,37,47,48,49,89,88,55,53,43,44,16,36,25,25,18,18,45,45,46,37,47,48,49,25,18,45,46,47,48,49,89,88,55,53,43,44,16,36,25,18,45,46,37,47,48,49,53,89,88,55,53,43,44,16,36,25,18,45,46,37,47,48,49,90,90,53,43,44,36,44,36,43,44,36,44,36,44,43,44,36,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,74,15,15,22,22,15,74,22,15,76,74,22,15,76,74,15,15,74,22,15,76,74,76,74,74,15,74,22,74,22,15,74,22,15,76,74,22,15,15,76,15,74,22,15,76,22,15,74,22,15,76,15,74,74,22,15,74,22,15,22,15,74,22,74,22,15,22,15,74,74,74,74,22,15,74,15,15,22,22,15,74,74,74,74,15,74,22,74,22,15,15,22,15,74,22,15,15,74,74,22,15,22,15,74,22,74,74,74,74,74,74,74,22,74,74,22,15,76,76,76,76,76,76,76,76,76,76,74,74,74,74,74,22,15,15,74,22,15,76,74,22,15,76,74,22,15,76,22,74,74,22,15,76,74,22,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,13,91,91,91,91,12,13,81,82,83,79,84,12,13,81,82,83,79,84,81,82,83,79,84,81,82,83,79,84,12,13,81,81,81,82,83,79,84,91,91,81,82,83,79,84,10,10,82,81,82,83,79,84,81,82,12,12,13,81,82,83,79,84,84,91,91,91,91,83,79,13,12,13,81,82,83,79,84,91,91,91,91,81,91,91,91,91,91,91,91,91,83,79,10,10,13,10,82,83,79,84,13,91,12,13,79,83,79,81,10,10,83,79,84,83,79,82,81,84,10,10,83,79,84,10,91,91,82,83,79,84,82,82,81,81,82,83,79,84,12,12,12,12,12,12,13,13,13,13,13,13,81,82,82,82,83,79,84,12,13,81,82,83,79,84,12,13,81,82,83,79,84,84,91,91,10,82,83,79,84,0],"f":[0,0,0,[1,2],[[]],[[]],[[]],[[]],[[]],[[]],[1,1],[[]],0,[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[5,2,2],[[7,[6]]]],[1,[[7,[6]]]],[1,[[7,[6]]]],[1,2],[1,2],[1,2],0,[[1,8],9],[[]],[[]],[[[12,[[0,[10,11]]]]],1],[[]],[[[13,[[0,[10,11]]]]],1],[5,[[7,[0]]]],[5,[[14,[[7,[0]]]]]],[1,15],[1,15],0,[[]],[[]],[[]],[[1,16],17],[1,16],[5,18],[1,18],[[[20,[19]]],[[14,[5]]]],[1,21],[1,2],[[22,[7,[6]]],23],[15,1],[1,2],[5,2],[5,2],[5,2],[5,14],[[5,[24,[6]]],[[14,[2]]]],[[15,[24,[6]]],[[14,[1]]]],[[[24,[6]],2,2,2,18,25],[[14,[[7,[1]]]]]],[[5,[20,[19]]],[[14,[2]]]],[[5,2],[[14,[1]]]],[[5,2],[[14,[1]]]],[[5,2],[[14,[1]]]],[[5,2],[[14,[21]]]],[5,[[14,[[7,[21]]]]]],[[5,16],[[7,[1]]]],[[5,16],[[7,[1]]]],[[1,2]],[[1,[7,[6]]]],[[1,21]],[5,2],[5,2],[5,2],[5,2],[5,2],[1,2],[[1,2,2],[[14,[[24,[6]]]]]],[[1,2,2],[[14,[[24,[6]]]]]],[[1,2,2],[[24,[6]]]],[[1,2,2],[[24,[6]]]],[1,2],[5,[[7,[26]]]],[[5,2],[[14,[21]]]],[5,[[7,[27]]]],[5,[[7,[28]]]],[5,[[7,[0]]]],0,[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],29],[[],29],[[],29],[5],[1],0,[5,25],[1,25],[[1,21],1],[[5,[24,[6]]],[[14,[2]]]],[[1,[24,[6]],2,2],[[14,[2]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[0,[30,31,32]]]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2]],[[[0,[31,32]]]],[[37,37]],[[37,37]],[37],[[37,37]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41,42]]]],42]]]],[40,[[0,[38,39,[40,[[0,[40,40,41,42]]]],42]]]],41,42]]]],42]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41,42]]]],42]]]],[40,[[0,[38,39,[40,[[0,[40,40,41,42]]]],42]]]],41,42]]]],42]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40,42]]]],[40,[[0,[38,39,40,42]]]],41,42]]]],42]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40,42]]]],[40,[[0,[38,39,40,42]]]],41,42]]]],42]]]],41,42]]]]],[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41,42]]]],42]]]],[40,[[0,[38,39,[40,[[0,[40,40,41,42]]]],42]]]],41,42]]]],42]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41,42]]]],42]]]],[40,[[0,[38,39,[40,[[0,[40,40,41,42]]]],42]]]],41,42]]]],42]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40,42]]]],[40,[[0,[38,39,40,42]]]],41,42]]]],42]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40,42]]]],[40,[[0,[38,39,40,42]]]],41,42]]]],42]]]],41,42]]]]]],[[[44,[[0,[[34,[[0,[[33,[[0,[[34,[[0,[33,42]]]],42]],[0,[[35,[[0,[33,42]]]],42]]]],42]]]],42]],[0,[[35,[[0,[[33,[[0,[[34,[[0,[33,42]]]],42]],[0,[[35,[[0,[33,42]]]],42]]]],42]]]],42]],[0,[[33,[[0,[[34,[[0,[[33,[[0,[34,42]],[0,[35,42]]]],42]]]],42]],[0,[[35,[[0,[[33,[[0,[34,42]],[0,[35,42]]]],42]]]],42]]]],42]]]]],[[44,[[0,[[34,[[0,[[33,[[0,[[34,[[0,[33,42]]]],42]],[0,[[35,[[0,[33,42]]]],42]]]],42]]]],42]],[0,[[35,[[0,[[33,[[0,[[34,[[0,[33,42]]]],42]],[0,[[35,[[0,[33,42]]]],42]]]],42]]]],42]],[0,[[33,[[0,[[34,[[0,[[33,[[0,[34,42]],[0,[35,42]]]],42]]]],42]],[0,[[35,[[0,[[33,[[0,[34,42]],[0,[35,42]]]],42]]]],42]]]],42]]]]]],[16,16],[[[36,[[0,[[34,[[0,[[33,[[0,[[34,[[0,[33,42]]]],42]],[0,[[35,[[0,[33,42]]]],42]]]],42]]]],42]],[0,[[35,[[0,[[33,[[0,[[34,[[0,[33,42]]]],42]],[0,[[35,[[0,[33,42]]]],42]]]],42]]]],42]],[0,[[33,[[0,[[34,[[0,[[33,[[0,[34,42]],[0,[35,42]]]],42]]]],42]],[0,[[35,[[0,[[33,[[0,[34,42]],[0,[35,42]]]],42]]]],42]]]],42]]]]],[[36,[[0,[[34,[[0,[[33,[[0,[[34,[[0,[33,42]]]],42]],[0,[[35,[[0,[33,42]]]],42]]]],42]]]],42]],[0,[[35,[[0,[[33,[[0,[[34,[[0,[33,42]]]],42]],[0,[[35,[[0,[33,42]]]],42]]]],42]]]],42]],[0,[[33,[[0,[[34,[[0,[[33,[[0,[34,42]],[0,[35,42]]]],42]]]],42]],[0,[[35,[[0,[[33,[[0,[34,42]],[0,[35,42]]]],42]]]],42]]]],42]]]]]],[25,25],[18,18],[45,45],[46,46],[37,37],[47,47],[48,48],[49,49],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[14,[50]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[25,[[14,[6]]]],[[],[[4,[3]]]],[18,[[14,[6]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[45,[[14,[51]]]],[46,[[14,[51]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],2],[[],25],[[],18],[[],45],[[],46],[[],47],[[],48],[[],49],[[],[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]]]],[[[44,[[34,[[0,[[33,[[34,[[0,[33,52]]]],[35,[[0,[33,52]]]]]],52]]]],[35,[[0,[[33,[[34,[[0,[33,52]]]],[35,[[0,[33,52]]]]]],52]]]],[0,[[33,[[34,[[0,[[33,[34,35]],52]]]],[35,[[0,[[33,[34,35]],52]]]]]],52]]]],[44,[[34,[[0,[[33,[[34,[[0,[33,52]]]],[35,[[0,[33,52]]]]]],52]]]],[35,[[0,[[33,[[34,[[0,[33,52]]]],[35,[[0,[33,52]]]]]],52]]]],[0,[[33,[[34,[[0,[[33,[34,35]],52]]]],[35,[[0,[[33,[34,35]],52]]]]]],52]]]]],17],[[16,16],17],[[25,25],17],[[18,18],17],[[45,45],17],[[46,46],17],[[37,37],17],[[47,47],17],[[48,48],17],[[49,49],17],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41,41]]]],41]]]],[40,[[0,[38,39,[40,[[0,[40,40,41,41]]]],41]]]],41,41]]]],41]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41,41]]]],41]]]],[40,[[0,[38,39,[40,[[0,[40,40,41,41]]]],41]]]],41,41]]]],41]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40,41]]]],[40,[[0,[38,39,40,41]]]],41,41]]]],41]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40,41]]]],[40,[[0,[38,39,40,41]]]],41,41]]]],41]]]],41,41]]]],8],9],[[[44,[[0,[[34,[[0,[[33,[[0,[[34,[[0,[33,41]]]],41]],[0,[[35,[[0,[33,41]]]],41]]]],41]]]],41]],[0,[[35,[[0,[[33,[[0,[[34,[[0,[33,41]]]],41]],[0,[[35,[[0,[33,41]]]],41]]]],41]]]],41]],[0,[[33,[[0,[[34,[[0,[[33,[[0,[34,41]],[0,[35,41]]]],41]]]],41]],[0,[[35,[[0,[[33,[[0,[34,41]],[0,[35,41]]]],41]]]],41]]]],41]]]],8],9],[[16,8],9],[[25,8],9],[[18,8],9],[[45,8],9],[[46,8],9],[[37,8],9],[[47,8],9],[[48,8],9],[[49,8],9],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[46,16],[[]],[[]],[[]],[[]],[16,46],[51,46],[[]],[[]],[6,47],[[]],[6,48],[[]],[[]],[6,49],[[[24,[6]],18],[[14,[50]]]],[[],46],[[],47],[[],48],[[],49],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]],[24,[6]]],[[14,[[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]]]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]],[[33,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2],2],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]],2],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],[24,[6]]],53],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]]],18],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]],18],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]],18],[[[24,[6]],2],53],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2],2],[[54,25,18],[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[54,25,18],[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[24,[6]],55],53],[54,[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]]]],[54,[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[54,[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[53,56],[37],[[53,2],53],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]],2],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],[24,[6]]],[[14,[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]]]],0,[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],[24,[6]]],[[14,[[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],[24,[6]],2],[[14,[[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]],[24,[6]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]]]],41]]],14],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],[33,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]]]]]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]],2]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]],18]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],18]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],18]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]],2]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]],25]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],25]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],25]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]]],2],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]],2],[[[24,[6]],18],14],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[6,[[4,[25,[57,[25]]]]]],[[],4],[6,[[4,[18,[57,[18]]]]]],[[],4],[[],4],[51,[[4,[45,[57,[45]]]]]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],[[4,[25,[57,[25]]]]]],[[],[[4,[18,[57,[18]]]]]],[[],[[4,[45,[57,[45]]]]]],[[],[[4,[46,[57,[46]]]]]],[[],[[4,[47,[57,[47]]]]]],[[],[[4,[48,[57,[48]]]]]],[[],[[4,[49,[57,[49]]]]]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[53,[58,[2]]],[[14,[53]]]],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[[0,[31,32,50]]]],[[[0,[31,32,50]]]],[[[24,[6]],6],53],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]]],25],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]],25],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]],25],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2],[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2],[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]],18],[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]]]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],18],[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],18],[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2],[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],2],[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],[33,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]]]]],[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]],25],[[43,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[38,39,[40,[[0,[[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],[40,[[0,[38,39,[40,[[0,[40,40,41]]]]]]]],41]]]]]],[0,[[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],[40,[[0,[38,39,[40,[[0,[[40,[[0,[38,39,40]]]],[40,[[0,[38,39,40]]]],41]]]]]]]],41]]]]]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],25],[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],25],[[36,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]]]],[[[44,[[34,[[33,[[34,[33]],[35,[33]]]]]],[35,[[33,[[34,[33]],[35,[33]]]]]],[33,[[34,[[33,[34,35]]]],[35,[[33,[34,35]]]]]]]],[24,[6]]],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[54,[[59,[2]]]],[54,[[59,[2]]]],[[]],[[]],[54,54],[[]],[[],[[4,[3]]]],[[],54],[[54,8],9],[[]],[54,[[59,[2]]]],[54,[[59,[2]]]],[[]],[[[59,[2]],[59,[2]]],54],[54,2],[[]],[[],4],[[],4],[[],29],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[],[[4,[3]]]],[[3,8],9],[[3,8],9],[60,3],[61,3],[62,3],[63,3],[[]],[64,3],[65,3],[66,3],[67,3],[[[57,[68]]],3],[[[70,[69]]],3],[71,3],[[]],[72],[3,[[56,[73]]]],[[],21],[[],4],[[],4],[[],29],0,0,0,0,[74,6],[15,75],[15,75],[22,75],[22,2],[15,2],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[74,25],[15,15],[[]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[74,18],[[],76],[74,77],[74,75],[15,2],[74,77],[22,2],[74,51],[22,51],[15,[[78,[37]]]],[[74,8],9],[[22,8],9],[[15,8],9],[[76,8],9],[[]],[[]],[[]],[76,15],[[]],[15,51],[[]],[[]],[[]],[[]],[22,45],[15,46],[74,18],[22,18],[15,18],0,[15,51],[74,77],[74,21],[22,75],[15,51],[[],74],[[18,25],22],[[18,25],15],[22,2],[15,2],[74,6],[22,75],[[[24,[6]]],[[14,[74]]]],[[[24,[6]],18,25],[[14,[22]]]],[[[24,[6]],18,25],[[14,[15]]]],[[[24,[6]],2,2,2,18,25],[[14,[[7,[22]]]]]],[[[24,[6]],2,2,2,18,25],[[14,[[7,[15]]]]]],[74,2],[74,2],[74,2],[[74,[24,[6]]],14],[[22,[24,[6]]],14],[[15,[24,[6]]],14],[[74,6]],[[15,75]],[[15,75]],[[22,75]],[[22,2]],[[15,2]],[[74,25]],[[74,18]],[[74,77]],[[74,75]],[[15,2]],[[74,77]],[[22,2]],[[74,51]],[[22,51]],[[15,[78,[37]]]],[[15,51]],[[22,45]],[[15,46]],[[74,18]],[[22,18]],[[15,18]],[[15,51]],[[74,77]],[[74,21]],[[22,75]],[[15,51]],[[22,2]],[[15,2]],[[74,6]],[[22,75]],[[74,2]],[[74,2]],[[74,2]],[[74,2]],[[74,2]],[[74,2]],[[74,2]],[[22,75]],[[74,6]],[[74,25]],[[22,25]],[[15,25]],0,0,0,0,0,0,0,0,0,0,[74,2],[74,2],[74,2],[74,2],[74,2],[22,2],[15,2],[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],29],[[],29],[[],29],[[],29],[22,75],[74,6],[74,25],[22,25],[15,25],0,[[74,[24,[6]]],14],[[22,[24,[6]]],14],[[15,[24,[6]]],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[79,80],[[[13,[[0,[10,11]]]],[0,[10,11]]],[[14,[2]]]],[2,14],[2,14],[2,14],[2,14],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[81,81],[82,82],[83,83],[79,79],[84,84],[[]],[[]],[[]],[[]],[[]],[[],[[4,[3]]]],[[],[[4,[3]]]],[81,[[14,[51]]]],[[],[[4,[3]]]],[81,[[14,[75]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[[],[[4,[3]]]],[2,[[14,[[24,[6]]]]]],[2,[[14,[[24,[6]]]]]],[[],81],[[],82],[[],83],[[],79],[[],84],[2,55],[2,55],[2,55],[[81,81],17],[[82,82],17],[[83,83],17],[[79,79],17],[[84,84],17],[[81,8],9],[[82,8],9],[[[13,[[0,[10,11]]]]],[[12,[[0,[10,11]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[80,84],[[]],[[],17],[[],17],[[],17],[[],17],[83,81],[79,81],[[[13,[[0,[10,11]]]],2,[0,[10,11]]],[[14,[2]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[14,[7]]]],[[],[[14,[7]]]],[[],53],[[],53],[81,6],[[],18],[[],18],[[],2],[[],2],[[],2],[[],2],[2,2],[2,2],[83,75],[79,75],[[[24,[6]],1],[[14,[50]]]],[[[24,[6]],1],[[14,[50]]]],[[[13,[[0,[10,11]]]],[0,[10,11]]],[[14,[2]]]],[[[24,[6]]],14],[[82,[24,[6]]],14],[[83,[24,[6]]],14],[[79,[24,[6]]],14],[[84,[24,[6]]],14],[[[13,[[0,[10,11]]]],2],[[14,[[0,[10,11]]]]]],[[],1],[[[12,[[0,[10,11]]]]],1],[[[13,[[0,[10,11]]]]],1],[[79,80]],[[83,81]],[[79,81]],[[81,6]],[18],[18],[[83,18]],[[79,18]],[[84,18]],[[83,75]],[[79,75]],[[82,21],14],[[81,75]],[[84,80]],[25],[25],[[83,25]],[[79,25]],[[84,25]],[[],2],[[],2],[[],2],[82,2],[83,2],[79,2],[84,2],[82,[[14,[21]]]],[82,21],[81,75],[[]],[[]],[[]],[[]],[[]],[1,[[14,[[12,[84]]]]]],[[],4],[1,[[14,[[12,[83]]]]]],[1,[[14,[[12,[0]]]]]],[1,[[14,[[12,[79]]]]]],[1,[[14,[[12,[82]]]]]],[1,[[14,[[13,[83]]]]]],[[],4],[1,[[14,[[13,[0]]]]]],[1,[[14,[[13,[84]]]]]],[1,[[14,[[13,[79]]]]]],[1,[[14,[[13,[82]]]]]],[[],4],[85,[[14,[82]]]],[[],4],[21,[[14,[82]]]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[84,80],[[],25],[[],25],[[[24,[6]]],14],[[82,[24,[6]]],14],[[83,[24,[6]]],14],[[79,[24,[6]]],14],[[84,[24,[6]]],14],[[[87,[86]]],[[14,[[7,[6]]]]]]],"c":[],"p":[[3,"Section"],[15,"usize"],[4,"Error"],[4,"Result"],[3,"Binary"],[15,"u8"],[3,"Vec"],[3,"Formatter"],[6,"Result"],[8,"TableItem"],[8,"Default"],[3,"Table"],[3,"TableMut"],[6,"Result"],[3,"SectionHeader"],[4,"SectionType"],[15,"bool"],[4,"Layout"],[3,"Path"],[8,"AsRef"],[3,"String"],[3,"ProgramHeader"],[3,"Segment"],[15,"slice"],[4,"Width"],[6,"StringTable"],[6,"SymbolTable"],[6,"SymbolTableMut"],[3,"TypeId"],[8,"Fn"],[8,"Send"],[8,"Sync"],[8,"TOutValue"],[8,"T32Value"],[8,"T64Value"],[3,"ItemArray"],[4,"SHFlags"],[8,"FromBytes"],[8,"IntoBytes"],[8,"Convert"],[8,"Debug"],[8,"Clone"],[3,"Field"],[3,"Item"],[4,"PHType"],[4,"SHType"],[4,"STBind"],[4,"STType"],[4,"STVisibility"],[8,"Sized"],[15,"u32"],[8,"PartialEq"],[3,"ByteIter"],[3,"Ranges"],[4,"ByteDelimiter"],[4,"Option"],[3,"TryFromPrimitiveError"],[8,"TryInto"],[3,"Range"],[3,"IntoStringError"],[3,"TryFromSliceError"],[3,"Error"],[3,"TryFromIntError"],[3,"FromBytesWithNulError"],[3,"Utf8Error"],[3,"PoisonError"],[3,"NulError"],[8,"TryFromPrimitive"],[8,"BitFlag"],[3,"FromBitsError"],[4,"Infallible"],[3,"Demand"],[8,"Error"],[3,"FileHeader"],[15,"u64"],[3,"SectionHeaderData"],[15,"u16"],[3,"BitFlags"],[3,"RelaItem"],[15,"i64"],[3,"RelocationInfo"],[3,"StringItem"],[3,"RelItem"],[3,"ArrayItem"],[15,"str"],[3,"PathBuf"],[8,"Into"],[3,"Update"],[3,"All"],[8,"Updateable"],[8,"TableView"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/settings.html b/settings.html index ca5e482..0dbd91b 100644 --- a/settings.html +++ b/settings.html @@ -1 +1 @@ -Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file +Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/source-files.js b/source-files.js index 225a6cb..d97278a 100644 --- a/source-files.js +++ b/source-files.js @@ -1,4 +1,4 @@ var sourcesIndex = JSON.parse('{\ -"deaf":["",[["common",[],["bytes.rs","constants.rs","enums.rs","field.rs","item.rs","item_array.rs","iterator.rs","mod.rs","ranges.rs","update.rs"]],["headers",[],["file.rs","mod.rs","program.rs","section.rs"]],["tables",[["info",[],["mod.rs","relocation.rs","symbol.rs"]],["items",[],["array.rs","mod.rs","relocation.rs","string.rs","symbol.rs","traits.rs"]]],["mod.rs","table.rs"]]],["binary.rs","errors.rs","lib.rs","section.rs","segment.rs","utilities.rs"]]\ +"deaf":["",[["common",[],["bytes.rs","constants.rs","enums.rs","field.rs","item.rs","item_array.rs","iterator.rs","mod.rs","ranges.rs","update.rs"]],["functions",[],["function.rs","mod.rs"]],["headers",[],["file.rs","mod.rs","program.rs","section.rs"]],["symbols",[],["info.rs","mod.rs","symbol.rs"]],["tables",[["info",[],["mod.rs","relocation.rs"]],["items",[],["array.rs","mod.rs","relocation.rs","string.rs","traits.rs"]]],["mod.rs","table.rs"]]],["binary.rs","errors.rs","lib.rs","section.rs","segment.rs","utilities.rs"]]\ }'); createSourceSidebar(); diff --git a/src/deaf/binary.rs.html b/src/deaf/binary.rs.html index 1034f85..5ea7d88 100644 --- a/src/deaf/binary.rs.html +++ b/src/deaf/binary.rs.html @@ -1,4 +1,4 @@ -binary.rs - source
1
+binary.rs - source
1
 2
 3
 4
@@ -261,11 +261,229 @@
 261
 262
 263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
 
use std::path::Path;
 use std::fs;
 
 use crate::Section;
-use crate::tables::{Table,TableView,StringItem};
+use crate::symbols::Symbol;
+use crate::functions::Function;
+use crate::tables::{Table,TableView,StringItem, SymbolTable, SymbolTableMut, StringTable};
 use crate::headers::FileHeader;
 use crate::errors::{Error,Result};
 use crate::common::{
@@ -314,6 +532,7 @@
             width
         )?;
 
+        self.process();
         Ok(self.size())
     }
 
@@ -347,6 +566,24 @@
         Ok(size)
     }
 
+    pub fn process(&mut self) -> Result<()> {
+
+        let str_section = self.section(self.header.shstrndx())?.clone();
+        let str_table = StringTable::try_from(&str_section)?;
+
+        for section in self.sections.iter_mut() {
+            let offset = section.name_index();
+            let name = str_table
+                .at_offset(offset)
+                .and_then(|e| e.string())
+                .unwrap_or("".into());
+
+            section.set_name(name);
+        }
+
+        Ok(())
+    }
+
     pub fn size(&self) -> usize {
         self.header.size() +
         self.sections
@@ -360,6 +597,13 @@
             .ok_or(Error::NotFound)
     }
 
+    pub fn section_for_address(&self, address: usize) -> Result<&Section> {
+        self.sections
+            .iter()
+            .find(|s| s.start() <= address && s.end() > address)
+            .ok_or(Error::NotFound)
+    }
+
     pub fn section_mut(&mut self, index: usize) -> Result<&mut Section> {
         self.sections
             .get_mut(index)
@@ -390,7 +634,7 @@
 
     pub fn section_names(&self) -> Result<Vec<String>> {
         self.section(self.header.shstrndx())
-            .and_then(Table::<StringItem>::try_from)
+            .and_then(StringTable::try_from)
             .and_then(|t| t
                 .items())
             .and_then(|v| v
@@ -399,6 +643,102 @@
                 .collect())
     }
 
+    /// Get all string tables except the 'shstrtab'
+    pub fn string_tables(&self) -> Vec<StringTable> {
+        let k = self.header.shstrndx();
+        self.sections
+            .iter()
+            .enumerate()
+            .filter(|(i,_)| *i != k)
+            .map(|(_,t)| t)
+            .flat_map(StringTable::try_from)
+            .collect()
+    }
+
+    pub fn symbol_tables(&self) -> Vec<SymbolTable> {
+        self.sections
+            .iter()
+            .flat_map(SymbolTable::try_from)
+            .collect()
+    }
+
+    pub fn symbol_tables_mut(&mut self) -> Vec<SymbolTableMut> {
+        self.sections
+            .iter_mut()
+            .flat_map(SymbolTableMut::try_from)
+            .collect()
+    }
+
+    pub fn symbol_name(&self, offset: usize) -> Result<String> {
+        self.string_tables()
+            .iter()
+            .find_map(|t| t
+                .at_offset(offset)
+                .and_then(|s| s.string())
+                .ok())
+            .ok_or(Error::NotFound)
+    }
+
+    pub fn symbols(&self) -> Vec<Symbol> {
+        self.symbol_tables()
+            .iter()
+            .flat_map(SymbolTable::items)
+            .flatten()
+            .collect()
+    }
+
+    pub fn functions(&self) -> Vec<Function> {
+        self.symbols()
+            .into_iter()
+            .flat_map(|f| self
+                .symbol_name(f.name())
+                .map(|s| (f,s)))
+            .flat_map(|(v,s)| Function::try_from(v)
+                .map(|f| {
+                    let address = f.address() as usize;
+                    let size = f.size() as usize;
+                    
+                    f
+                    .with_name(s)
+                    .with_body(&self.data(address,size))
+            }))
+            .collect()
+    }
+
+    pub fn functions_ex(&self) -> Result<Vec<Function>> {
+
+        let mut functions = self
+            .symbols()
+            .into_iter()
+            .filter_map(|s| Function::try_from(s).ok())
+            .collect::<Vec<Function>>();
+
+        for function in functions.iter_mut() {
+
+            let section_index = function.section();
+            let name_index = function.symbol().name();
+
+            let section = self.section(section_index)?;
+            let name = self.symbol_name(name_index)?;
+
+            function.set_body_from(
+                &section.data(),
+                section.offset())?;
+
+            function.set_name(name)
+
+        }
+
+        Ok(functions)
+    }
+
+    pub fn data(&self, address: usize, size: usize) -> Vec<u8> {
+        self.section_for_address(address)
+            .and_then(|s| s.slice(s.offset().saturating_sub(address), size))
+            .map(|d| d.to_vec())
+            .unwrap_or(Vec::new())
+    }
+
     /// Get the number of section headers in the file
     pub fn shnum(&self) -> usize {
         self.header.shnum()
@@ -466,7 +806,7 @@
         let names = binary
             .sections(SectionType::Strings)
             .iter()
-            .map(|s| s.name())
+            .map(|s| s.name_index())
             .map(|i| binary.section_name(i))
             .collect::<Result<Vec<String>>>()
             .unwrap();
@@ -477,50 +817,142 @@
     }
 
     #[test]
-    fn test_display_sections() {
+    fn test_get_symbol_tables() {
         let path = "assets/libvpf/libvpf.so.4.1";
         let binary = Binary::load(path).unwrap();
 
-        for (i,section) in binary.sections.iter().enumerate() {
-            let kind = section.header().kind();
-            let index = section.name();
-            let name = binary.section_name(index).unwrap();
+        let tables = binary.symbol_tables();
+        assert_eq!(tables.len(),1);
 
-            println!("{}: {} (kind={:?})",i,name,kind);
-        }
+        let index = tables[0].name_index();
+        assert_eq!(index,59);
+
+        let result = binary.section_name(index);
+        assert!(result.is_ok());
+
+        let name = result.unwrap();
+        assert_eq!(name, ".dynsym".to_string());
     }
 
     #[test]
-    fn test_display_string_table() {
-        let path = "assets/libjpeg/libjpeg.so.9";
+    fn test_get_symbols() {
+        let path = "assets/libvpf/libvpf.so.4.1";
         let binary = Binary::load(path).unwrap();
 
-        let sections = &binary.sections[36];
+        let symbols = binary.symbols();
+        assert_eq!(symbols.len(),294);
 
-        let dynstr = StringTable::try_from(sections).unwrap();
-        
-        for (i,item) in dynstr.items().unwrap().into_iter().enumerate() {
-            println!("{}: {}",i,item.string_lossy());
-        }
+        let index = symbols[1].name();
+        let result = binary.symbol_name(index);
+        assert!(result.is_ok());
+
+        let name = result.unwrap();
+        assert_eq!(name, "__ctype_toupper_loc".to_string());
     }
 
     #[test]
-    fn test_display_symbol_table() {
+    fn test_get_functions() {
         let path = "assets/libvpf/libvpf.so.4.1";
         let binary = Binary::load(path).unwrap();
 
-        let strings = &binary.sections[5];
-        let symbols = &binary.sections[4];
+        let functions = binary.functions();
+        assert_eq!(functions.len(),280);
 
-        let dynstr = StringTable::try_from(strings).unwrap();
-        let dynsym = SymbolTable::try_from(symbols).unwrap();
-        
-        for (i,item) in dynsym.items().unwrap().into_iter().enumerate() {
-            let name = dynstr
-                .at_offset(item.name() as usize)
-                .map(|v| v.string_lossy());
-            println!("{}: {:?}",i,name);
-        }
+        let function1 = &functions[80];
+        let function2 = &functions[171];
+        let function3 = &functions[238];
+
+        assert_eq!(function1.address(),0x15df0);
+        assert_eq!(function2.address(),0x06250);
+        assert_eq!(function3.address(),0x256a0);
+
+        assert_eq!(function1.name(),"table_in_list".to_string());
+        assert_eq!(function2.name(),"swap_two".to_string());
+        assert_eq!(function3.name(),"leftjust".to_string());
     }
 
-}
\ No newline at end of file + #[test] + fn test_get_sections_for_address() { + let path = "assets/libvpf/libvpf.so.4.1"; + let binary = Binary::load(path).unwrap(); + + let result = binary.section_for_address(0x2d5); + assert!(result.is_ok()); + + let section = result.unwrap(); + assert_eq!(section.name(),".note.gnu.build-id"); + + let result = binary.section_for_address(0x2f0); + assert!(result.is_ok()); + + let section = result.unwrap(); + assert_eq!(section.name(),".gnu.hash"); + + let result = binary.section_for_address(0x5740); + assert!(result.is_ok()); + + let section = result.unwrap(); + assert_eq!(section.name(),".text"); + + let result = binary.section_for_address(0x33f40); + assert!(result.is_ok()); + + let section = result.unwrap(); + assert_eq!(section.name(),".fini"); + + let result = binary.section_for_address(0x33f39); + assert!(result.is_ok()); + + let section = result.unwrap(); + assert_eq!(section.name(),".text"); + } + + + // #[test] + // fn test_display_sections() { + // let path = "assets/libvpf/libvpf.so.4.1"; + // let binary = Binary::load(path).unwrap(); + + // for (i,section) in binary.sections.iter().enumerate() { + // let kind = section.header().kind(); + // let index = section.name_index(); + // let name = binary.section_name(index).unwrap(); + + // println!("{}: {} (kind={:?})",i,name,kind); + // } + // } + + // #[test] + // fn test_display_string_table() { + // let path = "assets/libvpf/libvpf.so.4.1"; + // let binary = Binary::load(path).unwrap(); + + // let sections = &binary.sections[27]; + + // let dynstr = StringTable::try_from(sections).unwrap(); + + // for (i,item) in dynstr.items().unwrap().into_iter().enumerate() { + // println!("{}: {}",i,item.string_lossy()); + // } + // } + + // #[test] + // fn test_display_symbol_table() { + // let path = "assets/libvpf/libvpf.so.4.1"; + // let binary = Binary::load(path).unwrap(); + + // let strings = &binary.sections[5]; + // let symbols = &binary.sections[4]; + + // let dynstr = StringTable::try_from(strings).unwrap(); + // let dynsym = SymbolTable::try_from(symbols).unwrap(); + + // for (i,item) in dynsym.items().unwrap().into_iter().enumerate() { + // let name = dynstr + // .at_offset(item.name() as usize) + // .map(|v| v.string_lossy()); + // println!("{}: {:?}",i,name); + // } + // } + +}
\ No newline at end of file diff --git a/src/deaf/common/bytes.rs.html b/src/deaf/common/bytes.rs.html index 2c26375..8eeb7be 100644 --- a/src/deaf/common/bytes.rs.html +++ b/src/deaf/common/bytes.rs.html @@ -1,4 +1,4 @@ -bytes.rs - source
1
+bytes.rs - source
1
 2
 3
 4
diff --git a/src/deaf/common/constants.rs.html b/src/deaf/common/constants.rs.html
index 4d1a1dc..d461b69 100644
--- a/src/deaf/common/constants.rs.html
+++ b/src/deaf/common/constants.rs.html
@@ -1,4 +1,4 @@
-constants.rs - source
1
+constants.rs - source
1
 2
 3
 4
@@ -165,7 +165,60 @@
 165
 166
 167
-
use num_enum::{IntoPrimitive, TryFromPrimitive, FromPrimitive};
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+
use std::default;
+
+use num_enum::{IntoPrimitive, TryFromPrimitive, FromPrimitive};
 use enumflags2::bitflags;
 
 /// The mode of the ELF file
@@ -235,6 +288,32 @@
     fn default() -> Self { Self::PT_NULL }
 }
 
+/// Reserved values for section header indices
+#[repr(u32)]
+#[allow(non_camel_case_types)]
+#[derive(Debug, Clone, Copy, PartialEq, IntoPrimitive, FromPrimitive)]
+pub enum SHIndex {
+    #[default]
+    /// An undefined, missing, irrelevant, or otherwise meaningless section reference
+    SHN_UNDEF = 0x0000,
+
+    /// Provide for ordering in conjunction with the SHF_LINK_ORDER/SHF_ORDERED flags
+    SHN_BEFORE = 0xff00,
+
+    /// Provide for ordering in conjunction with the SHF_LINK_ORDER/SHF_ORDERED flags
+    SHN_AFTER = 0xff01,
+
+    /// Symbols defined relative to this index are not affected by relocation
+    SHN_ABS = 0xfff1,
+
+    /// Sections defined relative to this index are tenative/common symbols
+    SHN_COMMON = 0xfff2,
+
+    /// The actual section header index is too large to fit in the containing field 
+    /// (actual index is in SHT_SYMTAB_SHNDX section)
+    SHN_XINDEX = 0xffff,
+}
+
 /// The type of a section header
 ///
 /// This enum is generally parsed from the section headers (sh_type).
@@ -305,10 +384,11 @@
 
 /// The binding of a symbol entry from a static or dynamic symbol table
 ///
-/// This enum is parsed from symbol table entities (st_info).
+/// This enum is parsed from the upper 4 bits of the 1-byte 'st_info' 
+/// field include in each entry of the symbol table.
 #[repr(u8)]
 #[allow(non_camel_case_types)]
-#[derive(Default, Debug, Clone, Copy, PartialEq, IntoPrimitive, TryFromPrimitive)]
+#[derive(Default, Debug, Clone, Copy, PartialEq, IntoPrimitive, FromPrimitive)]
 pub enum STBind {
     #[default]
     STB_LOCAL   = 0x00,
@@ -318,10 +398,11 @@
 
 /// The type of a symbol entry from a static or dynamic symbol table
 ///
-/// This enum is parsed from symbol table entities (st_info).
+/// This enum is parsed from the lower 4 bits of the 1-byte 'st_info' 
+/// field include in each entry of the symbol table.
 #[repr(u8)]
 #[allow(non_camel_case_types)]
-#[derive(Default, Debug, Clone, Copy, PartialEq, IntoPrimitive, TryFromPrimitive)]
+#[derive(Default, Debug, Clone, Copy, PartialEq, IntoPrimitive, FromPrimitive)]
 pub enum STType {
     #[default]
     STT_NOTYPE  = 0x00,
@@ -331,4 +412,25 @@
     STT_FILE    = 0x04,
     STT_COMMON  = 0x05,
     STT_TLS     = 0x06,
-}
\ No newline at end of file +} + +/// The binding of a symbol entry from a static or dynamic symbol table +/// +/// This enum is parsed entries in the symbol table. +#[repr(u8)] +#[allow(non_camel_case_types)] +#[derive(Default, Debug, Clone, Copy, PartialEq, IntoPrimitive, FromPrimitive)] +pub enum STVisibility { + #[default] + /// The visibility is as specified by the symbol binding type + STV_DEFAULT = 0x00, + + /// This visibility attribute is currently reserved + STV_INTERNAL = 0x01, + + /// This symbol is protected and not externally visible + STV_HIDDEN = 0x02, + + /// External references must be resolved externally + STV_PROTECTED = 0x03 +}
\ No newline at end of file diff --git a/src/deaf/common/enums.rs.html b/src/deaf/common/enums.rs.html index 1122392..3d6cf3c 100644 --- a/src/deaf/common/enums.rs.html +++ b/src/deaf/common/enums.rs.html @@ -1,4 +1,4 @@ -enums.rs - source
1
+enums.rs - source
1
 2
 3
 4
diff --git a/src/deaf/common/field.rs.html b/src/deaf/common/field.rs.html
index bebba46..0fc8769 100644
--- a/src/deaf/common/field.rs.html
+++ b/src/deaf/common/field.rs.html
@@ -1,4 +1,4 @@
-field.rs - source
1
+field.rs - source
1
 2
 3
 4
diff --git a/src/deaf/common/item.rs.html b/src/deaf/common/item.rs.html
index 8f70c0c..45d158e 100644
--- a/src/deaf/common/item.rs.html
+++ b/src/deaf/common/item.rs.html
@@ -1,4 +1,4 @@
-item.rs - source
1
+item.rs - source
1
 2
 3
 4
diff --git a/src/deaf/common/item_array.rs.html b/src/deaf/common/item_array.rs.html
index 0d42cc8..1687e7b 100644
--- a/src/deaf/common/item_array.rs.html
+++ b/src/deaf/common/item_array.rs.html
@@ -1,4 +1,4 @@
-item_array.rs - source
1
+item_array.rs - source
1
 2
 3
 4
diff --git a/src/deaf/common/iterator.rs.html b/src/deaf/common/iterator.rs.html
index c36ddd4..9b839a8 100644
--- a/src/deaf/common/iterator.rs.html
+++ b/src/deaf/common/iterator.rs.html
@@ -1,4 +1,4 @@
-iterator.rs - source
1
+iterator.rs - source
1
 2
 3
 4
diff --git a/src/deaf/common/mod.rs.html b/src/deaf/common/mod.rs.html
index e24b21e..39108b5 100644
--- a/src/deaf/common/mod.rs.html
+++ b/src/deaf/common/mod.rs.html
@@ -1,4 +1,4 @@
-mod.rs - source
1
+mod.rs - source
1
 2
 3
 4
@@ -51,6 +51,7 @@
 51
 52
 53
+54
 
//! Common structs and types used by all other modules
 //!
 
@@ -89,6 +90,7 @@
     SHFlags,
     STBind,
     STType,
+    STVisibility,
 };
 
 pub use update::{
diff --git a/src/deaf/common/ranges.rs.html b/src/deaf/common/ranges.rs.html
index 22dc3d4..6a5cf68 100644
--- a/src/deaf/common/ranges.rs.html
+++ b/src/deaf/common/ranges.rs.html
@@ -1,4 +1,4 @@
-ranges.rs - source
1
+ranges.rs - source
1
 2
 3
 4
@@ -209,10 +209,10 @@
 
 pub const ST_NAME:        Ranges = Ranges::new(0x00..0x04,0x00..0x04); // u32 / u32
 pub const ST_VALUE:       Ranges = Ranges::new(0x04..0x08,0x08..0x10); // u32 / u64
-pub const ST_SIZE:        Ranges = Ranges::new(0x08..0x10,0x10..0x18); // u32 / u64
-pub const ST_INFO:        Ranges = Ranges::new(0x10..0x11,0x04..0x05); // u8  / u8
-pub const ST_OTHER:       Ranges = Ranges::new(0x11..0x12,0x05..0x06); // u8  / u8
-pub const ST_SHNDX:       Ranges = Ranges::new(0x12..0x14,0x06..0x08); // u16 / u16
+pub const ST_SIZE:        Ranges = Ranges::new(0x08..0x0c,0x10..0x18); // u32 / u64
+pub const ST_INFO:        Ranges = Ranges::new(0x0c..0x0d,0x04..0x05); // u8  / u8
+pub const ST_OTHER:       Ranges = Ranges::new(0x0d..0x0e,0x05..0x06); // u8  / u8
+pub const ST_SHNDX:       Ranges = Ranges::new(0x0e..0x10,0x06..0x08); // u16 / u16
 
 pub const RT_OFFSET:      Ranges = Ranges::new(0x00..0x04,0x00..0x08); // u32 / u64
 pub const RT_INFO:        Ranges = Ranges::new(0x04..0x08,0x08..0x10); // u32 / u64
diff --git a/src/deaf/common/update.rs.html b/src/deaf/common/update.rs.html
index 06fd108..ef5c8e9 100644
--- a/src/deaf/common/update.rs.html
+++ b/src/deaf/common/update.rs.html
@@ -1,4 +1,4 @@
-update.rs - source
1
+update.rs - source
1
 2
 3
 4
@@ -526,9 +526,9 @@
 
         // create a section header update
         Update::<SectionHeader>::add(move |t| {
-            let n = t.name();
+            let n = t.name_index();
             if n > limit {
-                t.set_name(n - value);
+                t.set_name_index(n - value);
             }
         });
 
diff --git a/src/deaf/errors.rs.html b/src/deaf/errors.rs.html
index 7f16353..43c6f04 100644
--- a/src/deaf/errors.rs.html
+++ b/src/deaf/errors.rs.html
@@ -1,4 +1,4 @@
-errors.rs - source
1
+errors.rs - source
1
 2
 3
 4
@@ -107,6 +107,10 @@
 107
 108
 109
+110
+111
+112
+113
 
//! A custom error type that aggregates internal errors
 //!
 
@@ -146,6 +150,10 @@
     #[error("Given section is of the wrong type")]
     WrongSectionError,
 
+    /// Filed to convert type to some specialized type
+    #[error("Given object is of the wrong type")]
+    WrongTypeError,
+
     /// Could not parse complex type from primitive
     #[error("Could not convert from complex value")]
     FromComplexError,
diff --git a/src/deaf/functions/function.rs.html b/src/deaf/functions/function.rs.html
new file mode 100644
index 0000000..7376260
--- /dev/null
+++ b/src/deaf/functions/function.rs.html
@@ -0,0 +1,948 @@
+function.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+
use crate::errors::{Error,Result};
+use crate::common::{STType,STBind,STVisibility,Layout,Width};
+use crate::symbols::{Symbol,SymbolInfo};
+
+#[derive(Default)]
+pub struct Function {
+    name: String,
+    body: Vec<u8>,
+    symbol: Symbol
+}
+
+impl Function {
+
+    pub fn new() -> Function {
+        Self::default()
+    }
+
+    /// Get the name of the function
+    pub fn name(&self) -> String {
+        self.name.clone()
+    }
+
+    /// Set the name of the function
+    /// 
+    /// This function will override the 'st_name' field in the 
+    /// symbol when the function is added to a binary and may
+    /// insert a new value into the string table.
+    pub fn set_name<T: Into<String>>(&mut self, value: T) {
+        self.name = value.into();
+    }
+
+    /// Builder method to set the name of the function
+    /// 
+    /// This function will override the 'st_name' field in the 
+    /// symbol when the function is added to a binary and may
+    /// insert a new value into the string table.
+    pub fn with_name<T: Into<String>>(mut self, name: T) -> Self {
+        self.set_name(name);
+        self
+    }
+
+    /// Get the function body
+    pub fn body(&self) -> &[u8] {
+        &self.body
+    }
+
+    /// Set the function body
+    /// 
+    /// Also updates the size of the symbol to reflect
+    /// the size of the given body.
+    pub fn set_body(&mut self, body: &[u8]) {
+        self.body = body.into();
+        self.set_size(body.len());
+    }
+
+    /// Extract the function body from section data
+    /// 
+    /// Also updates the size of the symbol to reflect
+    /// the size of the extracted body.
+    pub fn set_body_from(&mut self, data: &[u8], offset: usize) -> Result<()> {
+        self.read_body(data, offset)?;
+        Ok(())
+    }
+
+    /// Builder method to set the function body
+    /// 
+    /// Also updates the size of the symbol to reflect
+    /// the size of the given body.
+    pub fn with_body(mut self, body: &[u8]) -> Self {
+        self.set_body(body);
+        self
+    }
+
+    /// Builder method to extract body from section data 
+    /// 
+    /// Also updates the size of the symbol to reflect
+    /// the size of the extracted body.
+    pub fn with_body_from(mut self, data: &[u8], offset: usize) -> Result<Self> {
+        self.set_body_from(data, offset)?;
+        Ok(self)
+    }
+
+    /// Get the 'st_value' field of the function symbol
+    pub fn address(&self) -> usize {
+        self.symbol.value() as usize
+    }
+
+    /// Set the 'st_value' field of the function symbol
+    pub fn set_address(&mut self, value: usize) {
+        self.symbol.set_value(value as u64);
+    }
+
+    /// Builder method to set the 'st_value' field of the function symbol
+    pub fn with_address(mut self, value: usize) -> Self {
+        self.set_address(value);
+        self
+    }
+
+    /// Get the 'st_size' field of the function symbol
+    pub fn size(&self) -> usize {
+        self.symbol.size() as usize
+    }
+
+    /// Set the 'st_size' field of the function symbol
+    pub fn set_size(&mut self, value: usize) {
+        self.symbol.set_size(value as u64);
+    }
+
+    /// Builder method to set the 'st_size' field of the function symbol
+    pub fn with_size(mut self, value: usize) -> Self {
+        self.set_size(value);
+        self
+    }
+
+    /// Get the 'st_info' field of the function symbol
+    pub fn info(&self) -> SymbolInfo {
+        self.symbol.info()
+    }
+
+    /// Set the 'st_info' field of the function symbol
+    pub fn set_info(&mut self, value: SymbolInfo) {
+        self.symbol.set_info(value)
+    }
+
+    /// Builder method to set the 'st_info' field of the function symbol
+    pub fn with_info(mut self, value: SymbolInfo) -> Self {
+        self.set_info(value);
+        self
+    }
+
+    /// Get the type of the function symbol
+    pub fn kind(&self) -> STType {
+        self.info().kind()
+    }
+
+    /// Set the kind of the function symbol
+    pub fn set_kind(&mut self, kind: STType) {
+        self.symbol.set_kind(kind);
+    }
+
+    /// Builder method to set the kind (on SymbolInfo) of the function symbol
+    pub fn with_kind(mut self, value: STType) -> Self {
+        self.set_kind(value);
+        self
+    }
+
+    /// Get the binding of the function symbol
+    pub fn bind(&self) -> STBind {
+        self.symbol.bind()
+    }
+
+    /// Set the binding of the function symbol
+    pub fn set_bind(&mut self, bind: STBind) {
+        self.symbol.set_bind(bind)
+    }
+
+    /// Builder method to set the bind (on SymbolInfo) of the function symbol
+    pub fn with_bind(mut self, value: STBind) -> Self {
+        self.set_bind(value);
+        self
+    }
+
+    /// Get the 'st_other' field as an enum
+    pub fn visibility(&self) -> STVisibility {
+        self.symbol.visibility()
+    }
+
+    /// Set the 'st_other' field as an enum
+    pub fn set_visibility(&mut self, value: STVisibility) {
+        self.symbol.set_visibility(value);
+    }
+
+    /// Builder method to set the 'st_other' field as an enum
+    pub fn with_visibility(mut self, value: STVisibility) -> Self {
+        self.set_visibility(value);
+        self
+    }
+
+    /// Get the section index of the function symbol 
+    /// 
+    /// This gets the 'st_shndx' field of the internal symbol.
+    pub fn section(&self) -> usize {
+        self.symbol.shndx() as usize
+    }
+
+    /// Set the section index of the function symbol 
+    /// 
+    /// This sets the 'st_shndx' field of the internal symbol.
+    pub fn set_section(&mut self, value: usize) {
+        self.symbol.set_shndx(value as u16);
+    }
+
+    /// Builder method to set the sextion index of the function symbol
+    /// 
+    /// This sets the 'st_shndx' field of the internal symbol.
+    pub fn with_section(mut self, value: usize) -> Self {
+        self.set_section(value);
+        self
+    }
+
+    /// Get the current layout of the function symbol
+    pub fn layout(&self) -> Layout {
+        self.symbol.layout()
+    }
+
+    /// Set the current layout of the function symbol
+    pub fn set_layout(&mut self, layout: Layout){
+        self.symbol.set_layout(layout)
+    }
+
+    /// Builder method to set the layout of the function symbol
+    pub fn with_layout(mut self, value: Layout) -> Self {
+        self.set_layout(value);
+        self
+    }
+
+    /// Get the current width of the function symbol
+    pub fn width(&self) -> Width {
+        self.symbol.width()
+    }
+
+    /// Set the current width of the function symbol
+    pub fn set_width(&mut self, width: Width){
+        self.symbol.set_width(width)
+    }
+
+    /// Builder method to set the width of the function symbol
+    pub fn with_width(mut self, value: Width) -> Self {
+        self.set_width(value);
+        self
+    }
+
+    /// Get the symbol that represents this function
+    /// 
+    /// Fields on the symbol will not reflect some changes
+    /// until the function is added to the binary. The 
+    /// function name, for example, may be set as a string, 
+    /// but will not update the 'st_name' field of the symbol 
+    /// until the string is added to the string table.
+    pub fn symbol(&self) -> &Symbol {
+        &self.symbol
+    }
+
+    /// Get the mutable symbol that represents this function
+    /// 
+    /// Changes made directly to the symbol may be overridden
+    /// when the function is added to the binary. The 'st_name'
+    /// field of the symbol, for example, will be overwritten
+    /// when the string 'name' is added to the string table.
+    pub fn symbol_mut(&mut self) -> &mut Symbol {
+        &mut self.symbol
+    }
+
+    /// Set the symbol of the function
+    /// 
+    /// This method will overwrite most existing changes made 
+    /// to the function and some fields on the given symbol 
+    /// will be overwritten when the function is added to the 
+    /// binary.
+    pub fn set_symbol(&mut self, value: Symbol) {
+        self.symbol = value;
+    }
+
+    /// Builder method to set the symbol of the function
+    /// 
+    /// This method will overwrite most existing changes made 
+    /// to the function and some fields on the given symbol 
+    /// will be overwritten when the function is added to the 
+    /// binary.
+    pub fn with_symbol(mut self, value: Symbol) -> Self {
+        self.set_symbol(value);
+        self
+    }
+
+    /// Get the offset starting position of the function body
+    pub fn start(&self, offset: usize) -> usize {
+        self.address().saturating_sub(offset)
+    }
+
+    /// Get the offset ending position of the function body
+    pub fn end(&self, offset: usize) -> usize {
+        self.start(offset).saturating_add(self.size())
+    }
+
+    /// Read the symbol entry from the beginning of the given data
+    pub fn read_symbol(&mut self, data: &[u8]) -> Result<()> {
+        self.symbol.read(data)
+    }
+
+    /// Read the function body from the given data
+    /// 
+    /// Offset is subtracted from the function address to position
+    /// the function body inside of a section.
+    pub fn read_body(&mut self, data: &[u8], offset: usize) -> Result<()> {
+        let start = self.start(offset);
+        let end = self.end(offset);
+        if start <= end && end <= data.len() {
+            self.set_body(&data[start..end]);
+            Ok(())
+        }
+        else {
+            Err(Error::OutOfBoundsError)
+        }
+    }
+
+    /// Write the symbol entry to the beginning of the given data
+    fn write_symbol(&self, data: &mut [u8]) -> Result<()> {
+        self.symbol.write(data)
+    }
+
+    /// Write the function body to the given data
+    /// 
+    /// Offset is subtracted from the function address to position
+    /// the function body inside of a section.
+    pub fn write_body(&self, data: &mut [u8], offset: usize) -> Result<()> {
+        let start = self.start(offset);
+        let end = self.end(offset);
+        if start <= end && end <= data.len() {
+            data[start..end].copy_from_slice(&self.body);
+            Ok(())
+        }
+        else {
+            Err(Error::OutOfBoundsError)
+        }
+    }
+
+    /// Finish and validate the new function
+    pub fn build(mut self) -> Result<Self> {
+
+        // ensure that the symbol is valid
+        self.symbol.validate()?;
+
+        Ok(self)
+    }
+
+}
+
+impl TryFrom<Symbol> for Function {
+    type Error = Error;
+
+    fn try_from(symbol: Symbol) -> Result<Self> {
+        match symbol.kind() {
+            STType::STT_FUNC => Self::new()
+                .with_symbol(symbol)
+                .build(),
+            _ => Err(Error::WrongTypeError)
+        }
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    use crate::common::{Layout, Width, STBind};
+
+    use super::*;
+
+    macro_rules! setup_32 {
+        () => {{
+            // 32-bit, little-endian hex representation of a symbol
+            // with attached assembly function body
+            let data: [u8;44] = [
+                0x00, 0x00, 0x00, 0x00,                         // name:  0
+                0x10, 0x00, 0x00, 0x00,                         // value: 16
+                0x1c, 0x00, 0x00, 0x00,                         // size:  28
+                0x12,                                           // info:  STB_GLOBAL + STT_FUNC
+                0x01,                                           // other: 1
+                0x01, 0x00,                                     // shndx: 1
+
+                0xf3, 0x0f, 0x1e, 0xfa,          	        // endbr64 
+                0x48, 0x83, 0xec, 0x48,          	        // sub    $0x48,%rsp
+                0x8b, 0x17,                   	            // mov    (%rdi),%edx
+                0x48, 0x8b, 0x4e, 0x10,          	        // mov    0x10(%rsi),%rcx
+                0x64, 0x48, 0x8b, 0x04, 0x25, 0x28, 0x00, 	// mov    %fs:0x28,%rax
+                0x75, 0x05,                  	            // jne    5864 <Icmpval@@Base+0x64>
+                0x48, 0x83, 0xc4, 0x48,          	        // add    $0x48,%rsp
+                0xc3                   	                    // ret
+            ];
+
+            data
+        }};
+    }
+
+    macro_rules! setup_64 {
+        () => {{
+            // 64-bit, little-endian hex representation of a symbol
+            // with attached assembly
+            let data: [u8;52] = [
+                0x01, 0x00, 0x00, 0x00,                         // name:  1
+                0x12,                                           // info:  STB_GLOBAL + STT_FUNC
+                0x01,                                           // other: 1
+                0x01, 0x00,                                     // shndx: 1
+                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // value: 24 (address, for function)
+                0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // size:  28 (body size, for function)
+
+                0xf3, 0x0f, 0x1e, 0xfa,          	        // endbr64 
+                0x48, 0x83, 0xec, 0x48,          	        // sub    $0x48,%rsp
+                0x8b, 0x17,                   	            // mov    (%rdi),%edx
+                0x48, 0x8b, 0x4e, 0x10,          	        // mov    0x10(%rsi),%rcx
+                0x64, 0x48, 0x8b, 0x04, 0x25, 0x28, 0x00, 	// mov    %fs:0x28,%rax
+                0x75, 0x05,                  	            // jne    5864 <Icmpval@@Base+0x64>
+                0x48, 0x83, 0xc4, 0x48,          	        // add    $0x48,%rsp
+                0xc3                   	                    // ret
+            ];
+
+            data
+        }};
+    }
+
+    #[test]
+    fn test_create_function_64() {
+        let data = setup_64!();
+
+        let mut buffer: [u8;52] = [0;52];
+
+        let function = Function::new()
+            .with_symbol(Symbol::new()        
+                .with_layout(Layout::Little)
+                .with_width(Width::X64)
+                .with_visibility(STVisibility::STV_INTERNAL)
+                .with_bind(STBind::STB_GLOBAL)
+                .with_kind(STType::STT_FUNC)
+                .with_name(1)
+                .with_shndx(1)
+                .build()
+                .unwrap())
+            .with_name("Test")
+            .with_size(28)
+            .with_address(24)
+            .with_body_from(&data, 0)
+            .expect("could not read body from data")
+            .build()
+            .expect("could not build new function");
+
+        let result = function.write_symbol(&mut buffer);
+        assert!(result.is_ok());
+
+        let result = function.write_body(&mut buffer, 0);
+        assert!(result.is_ok());
+
+        assert_eq!(buffer,data);
+    }
+
+    #[test]
+    fn test_create_function_32() {
+        let data = setup_32!();
+
+        let mut buffer: [u8;44] = [0;44];
+
+        let mut function = Function::new()
+            .with_name("Test")
+            .with_size(28)
+            .with_section(1)
+            .with_address(16)
+            .with_width(Width::X32)
+            .with_layout(Layout::Little)
+            .with_bind(STBind::STB_GLOBAL)
+            .with_kind(STType::STT_FUNC)
+            .with_visibility(STVisibility::STV_INTERNAL)
+            .build()
+            .unwrap();
+
+        let result = function.read_body(&data,0);
+        assert!(result.is_ok());
+
+        let result = function.write_symbol(&mut buffer);
+        assert!(result.is_ok());
+
+        let result = function.write_body(&mut buffer, 0);
+        assert!(result.is_ok());
+
+        assert_eq!(buffer,data);
+    }
+
+}
\ No newline at end of file diff --git a/src/deaf/functions/mod.rs.html b/src/deaf/functions/mod.rs.html new file mode 100644 index 0000000..b674275 --- /dev/null +++ b/src/deaf/functions/mod.rs.html @@ -0,0 +1,8 @@ +mod.rs - source
1
+2
+3
+4
+

+mod function;
+
+pub use function::Function;
\ No newline at end of file diff --git a/src/deaf/headers/file.rs.html b/src/deaf/headers/file.rs.html index beeea28..d762c39 100644 --- a/src/deaf/headers/file.rs.html +++ b/src/deaf/headers/file.rs.html @@ -1,4 +1,4 @@ -file.rs - source
1
+file.rs - source
1
 2
 3
 4
diff --git a/src/deaf/headers/mod.rs.html b/src/deaf/headers/mod.rs.html
index 326fb3a..17d0b1c 100644
--- a/src/deaf/headers/mod.rs.html
+++ b/src/deaf/headers/mod.rs.html
@@ -1,4 +1,4 @@
-mod.rs - source
1
+mod.rs - source
1
 2
 3
 4
diff --git a/src/deaf/headers/program.rs.html b/src/deaf/headers/program.rs.html
index 901b2b4..4420e75 100644
--- a/src/deaf/headers/program.rs.html
+++ b/src/deaf/headers/program.rs.html
@@ -1,4 +1,4 @@
-program.rs - source
1
+program.rs - source
1
 2
 3
 4
diff --git a/src/deaf/headers/section.rs.html b/src/deaf/headers/section.rs.html
index de6e0e2..d37d611 100644
--- a/src/deaf/headers/section.rs.html
+++ b/src/deaf/headers/section.rs.html
@@ -1,4 +1,4 @@
-section.rs - source
1
+section.rs - source
1
 2
 3
 4
@@ -655,12 +655,12 @@
     }
 
     /// Get the `sh_name` attribute of the header
-    pub fn name(&self) -> u32 {
+    pub fn name_index(&self) -> u32 {
         self.sh_name.get()
     }
 
     /// Set the `sh_name` attribute of the header 
-    pub fn set_name(&mut self, name: u32) {
+    pub fn set_name_index(&mut self, name: u32) {
         self.sh_name.set(name);
     }
 
diff --git a/src/deaf/lib.rs.html b/src/deaf/lib.rs.html
index 8406211..61e6fc4 100644
--- a/src/deaf/lib.rs.html
+++ b/src/deaf/lib.rs.html
@@ -1,4 +1,4 @@
-lib.rs - source
1
+lib.rs - source
1
 2
 3
 4
@@ -14,6 +14,8 @@
 14
 15
 16
+17
+18
 
#![allow(dead_code)]
 #![doc = include_str!("../README.md")]
 
@@ -23,9 +25,11 @@
 pub mod headers;
 pub mod tables;
 
+mod functions;
 mod segment;
 mod section;
 mod binary;
+mod symbols;
 
 pub use segment::Segment;
 pub use section::Section;
diff --git a/src/deaf/section.rs.html b/src/deaf/section.rs.html
index 14d4cb0..d161116 100644
--- a/src/deaf/section.rs.html
+++ b/src/deaf/section.rs.html
@@ -1,4 +1,4 @@
-section.rs - source
1
+section.rs - source
1
 2
 3
 4
@@ -204,6 +204,29 @@
 204
 205
 206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
 
use crate::headers::SectionHeader;
 use crate::errors::{Result,Error};
 use crate::common::{Layout,Width,SectionType,Update,Updateable};
@@ -211,6 +234,7 @@
 /// A Section extracted from an ELF file
 #[derive(Debug,Clone)]
 pub struct Section {
+    name: String,
     header: SectionHeader,
     data: Vec<u8>,
 }
@@ -220,6 +244,7 @@
     /// Create a new section from a program header
     pub fn new(header: SectionHeader) -> Self {
         Self { 
+            name: String::new(),
             header: header, 
             data: Vec::new()
         }
@@ -273,6 +298,19 @@
             .collect()
     }
 
+    pub fn with_name(mut self, name: String) -> Self {
+        self.name = name;
+        self
+    }
+
+    pub fn set_name(&mut self, name: String) {
+        self.name = name;
+    }
+
+    pub fn name(&self) -> String {
+        self.name.clone()
+    }
+
     pub fn header(&self) -> &SectionHeader {
         &self.header
     }
@@ -322,8 +360,8 @@
         self.data.len()
     }
 
-    pub fn name(&self) -> usize {
-        self.header.name() as usize
+    pub fn name_index(&self) -> usize {
+        self.header.name_index() as usize
     }
 
     pub fn body_size(&self) -> usize {
@@ -346,6 +384,14 @@
         self.header.offset()
     }
 
+    pub fn start(&self) -> usize {
+        self.offset()
+    }
+
+    pub fn end(&self) -> usize {
+        self.offset() + self.body_size()
+    }
+
     pub fn layout(&self) -> Layout {
         self.header.layout()
     }
diff --git a/src/deaf/segment.rs.html b/src/deaf/segment.rs.html
index 401f66c..5a24030 100644
--- a/src/deaf/segment.rs.html
+++ b/src/deaf/segment.rs.html
@@ -1,4 +1,4 @@
-segment.rs - source
1
+segment.rs - source
1
 2
 3
 4
diff --git a/src/deaf/symbols/info.rs.html b/src/deaf/symbols/info.rs.html
new file mode 100644
index 0000000..28e2bfc
--- /dev/null
+++ b/src/deaf/symbols/info.rs.html
@@ -0,0 +1,274 @@
+info.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+
use crate::errors::{Error,Result};
+use crate::common::{Convert, STBind, STType};
+
+const TYPE_MASK:  u8 = 0x0f;
+const TYPE_SHIFT: u8 = 0;
+
+const BIND_MASK:  u8 = 0xf0;
+const BIND_SHIFT: u8 = 4;
+
+/// Representation of the info field in a Symbol record
+#[derive(Default,Debug,Clone,Copy,PartialEq)]
+pub struct SymbolInfo {
+    bind: STBind,
+    kind: STType,
+}
+
+impl SymbolInfo {
+
+    /// Create a new SymbolInfo struct with default values
+    pub fn new() -> Self {
+        Self {
+            bind: STBind::default(),
+            kind: STType::default()
+        }
+    }
+
+    /// Get the 'kind' component of the info struct
+    pub fn kind(&self) -> STType {
+        self.kind.clone()
+    }
+
+    /// Set the 'kind' component of the info struct
+    pub fn set_kind(&mut self, kind: STType) {
+        self.kind = kind;
+    }
+
+    /// Builder method for setting the 'kind' component of the info struct
+    pub fn with_kind(mut self, kind: STType) -> Self {
+        self.set_kind(kind);
+        self
+    }
+
+    /// Get the 'bind' component of the info struct
+    pub fn bind(&self) -> STBind {
+        self.bind.clone()
+    }
+
+    /// Set the 'bind' component of the info struct
+    pub fn set_bind(&mut self, bind: STBind) {
+        self.bind = bind;
+    }
+
+    /// Builder method for setting the 'bind' component of the info struct
+    pub fn with_bind(mut self, bind: STBind) -> Self {
+        self.set_bind(bind);
+        self
+    }
+
+}
+
+impl TryFrom<u8> for SymbolInfo {
+    type Error = Error;
+
+    fn try_from(v: u8) -> Result<Self> {
+        let bind = STBind::try_from((v & BIND_MASK) >> BIND_SHIFT)?;
+        let kind = STType::try_from((v & TYPE_MASK) >> TYPE_SHIFT)?;
+        Ok(Self { bind, kind })
+    }
+} 
+
+impl From<SymbolInfo> for u8 {
+
+    fn from(v: SymbolInfo) -> Self {
+        let b: u8 = v.bind().into();
+        let t: u8 = v.kind().into();
+        (b << BIND_SHIFT) | (t << TYPE_SHIFT)
+    }
+
+}
+
+impl Convert<u8> for SymbolInfo {
+    fn convert(self) -> Result<u8> { Ok(self.into()) }
+}
+
+impl Convert<SymbolInfo> for u8 {
+    fn convert(self) -> Result<SymbolInfo> { self.try_into() }
+}
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn test_symbol_info_parse_pair() {
+        let value = 0x21; // STB_WEAK + STT_OBJECT
+        let result = SymbolInfo::try_from(value);
+
+        assert!(result.is_ok());
+        let info = result.unwrap();
+
+        assert_eq!(info.bind,STBind::STB_WEAK);
+        assert_eq!(info.kind,STType::STT_OBJECT);
+    }
+
+    #[test]
+    fn test_symbol_info_parse_zeroes() {
+        let value = 0x00; // STB_LOCAL + STT_NOTYPE
+        let result = SymbolInfo::try_from(value);
+
+        assert!(result.is_ok());
+        let info = result.unwrap();
+
+        assert_eq!(info.bind,STBind::STB_LOCAL);
+        assert_eq!(info.kind,STType::STT_NOTYPE);
+    }
+
+    #[test]
+    fn test_symbol_info_back_to_zeroes() {
+        let value = 0x00; // STB_LOCAL + STT_NOTYPE
+        let info = SymbolInfo::try_from(value).unwrap();
+        let result: Result<u8> = info.convert();
+
+        assert!(result.is_ok());
+        assert_eq!(result.unwrap(),value);
+    }
+
+    #[test]
+    fn test_symbol_info_back_to_value() {
+        let value = 0x21; // STB_LOCAL + STT_OBJECT
+        let info = SymbolInfo::try_from(value).unwrap();
+        let result: Result<u8> = info.convert();
+
+        assert!(result.is_ok());
+        assert_eq!(result.unwrap(),value);
+    }
+
+}
\ No newline at end of file diff --git a/src/deaf/symbols/mod.rs.html b/src/deaf/symbols/mod.rs.html new file mode 100644 index 0000000..f5fb961 --- /dev/null +++ b/src/deaf/symbols/mod.rs.html @@ -0,0 +1,12 @@ +mod.rs - source
1
+2
+3
+4
+5
+6
+

+mod info;
+mod symbol;
+
+pub use info::SymbolInfo;
+pub use symbol::Symbol;
\ No newline at end of file diff --git a/src/deaf/symbols/symbol.rs.html b/src/deaf/symbols/symbol.rs.html new file mode 100644 index 0000000..cb05d93 --- /dev/null +++ b/src/deaf/symbols/symbol.rs.html @@ -0,0 +1,1278 @@ +symbol.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+608
+609
+610
+611
+612
+613
+614
+615
+616
+617
+618
+619
+620
+621
+622
+623
+624
+625
+626
+627
+628
+629
+630
+631
+632
+633
+634
+635
+636
+637
+638
+639
+
use crate::errors::Result;
+use crate::common::{
+    Width,
+    Layout,
+    Item,
+    ranges::*, STType, STBind, STVisibility
+};
+use crate::symbols::SymbolInfo;
+use crate::tables::TableItem;
+
+/// A Symbol item found in symbol tables
+#[derive(Clone,Debug)]
+pub struct Symbol {
+    st_name: Item<u32,u32,usize>,
+    st_value: Item<u32,u64>,
+    st_size: Item<u32,u64>,
+    st_info: Item<u8,u8,SymbolInfo>,
+    st_other: Item<u8>,
+    st_shndx: Item<u16,u16>,
+}
+
+impl Symbol {
+
+    /// Create a new symbol
+    pub fn new() -> Self {
+        Self {
+            st_name: Item::new(ST_NAME), 
+            st_value: Item::new(ST_VALUE),
+            st_size: Item::new(ST_SIZE), 
+            st_info: Item::new(ST_INFO),    
+            st_other: Item::new(ST_OTHER),     
+            st_shndx: Item::new(ST_SHNDX),
+        }
+    }
+
+    /// Get the 'st_name' field (name *index*) of the symbol
+    pub fn name(&self) -> usize {
+        self.st_name.get()
+    }
+
+    /// Set the 'st_name' field (name *index*) of the symbol
+    pub fn set_name(&mut self, value: usize) {
+        self.st_name.set(value);
+    }
+
+    /// Builder method to set the 'st_name' field of the symbol
+    pub fn with_name(mut self, value: usize) -> Self {
+        self.set_name(value);
+        self
+    }
+
+    /// Get the 'st_value' field of the symbol
+    pub fn value(&self) -> u64 {
+        self.st_value.get()
+    }
+
+    /// Set the 'st_value' field of the symbol
+    pub fn set_value(&mut self, value: u64) {
+        self.st_value.set(value);
+    }
+
+    /// Builder method to set the 'st_value' field of the symbol
+    pub fn with_value(mut self, value: u64) -> Self {
+        self.set_value(value);
+        self
+    }
+
+    /// Get the 'st_size' field of the symbol
+    pub fn size(&self) -> u64 {
+        self.st_size.get()
+    }
+
+    /// Set the 'st_size' field of the symbol
+    pub fn set_size(&mut self, value: u64) {
+        self.st_size.set(value);
+    }
+
+    /// Builder method to set the 'st_size' field of the symbol
+    pub fn with_size(mut self, value: u64) -> Self {
+        self.set_size(value);
+        self
+    }
+
+    /// Get the 'st_info' field of the symbol
+    pub fn info(&self) -> SymbolInfo {
+        self.st_info.get()
+    }
+
+    /// Set the 'st_info' field of the symbol
+    pub fn set_info(&mut self, value: SymbolInfo) {
+        self.st_info.set(value);
+    }
+
+    /// Builder method to set the 'st_info' field of the symbol
+    pub fn with_info(mut self, value: SymbolInfo) -> Self {
+        self.set_info(value);
+        self
+    }
+
+    /// Get the type of the symbol
+    pub fn kind(&self) -> STType {
+        self.info().kind()
+    }
+
+    /// Set the kind of the symbol
+    pub fn set_kind(&mut self, kind: STType) {
+        self.set_info(self.info().with_kind(kind))
+    }
+
+    /// Builder method to set the kind (on SymbolInfo) of the symbol
+    pub fn with_kind(mut self, value: STType) -> Self {
+        self.set_kind(value);
+        self
+    }
+
+    /// Get the binding of the symbol
+    pub fn bind(&self) -> STBind {
+        self.info().bind()
+    }
+
+    /// Set the binding of the symbol
+    pub fn set_bind(&mut self, bind: STBind) {
+        self.set_info(self.info().with_bind(bind))
+    }
+
+    /// Builder method to set the bind (on SymbolInfo) of the symbol
+    pub fn with_bind(mut self, value: STBind) -> Self {
+        self.set_bind(value);
+        self
+    }
+
+    /// Get the 'st_other' field of the symbol
+    pub fn other(&self) -> u8 {
+        self.st_other.get()
+    }
+
+    /// Set the 'st_other' field of the symbol
+    pub fn set_other(&mut self, value: u8) {
+        self.st_other.set(value);
+    }
+
+    /// Builder method to set the 'st_other' field of the symbol
+    pub fn with_other(mut self, value: u8) -> Self {
+        self.set_other(value);
+        self
+    }
+
+    /// Get the 'st_other' field as an enum
+    pub fn visibility(&self) -> STVisibility {
+        self.st_other.get().into()
+    }
+
+    /// Set the 'st_other' field as an enum
+    /// 
+    /// Setting the visibility through this method will
+    /// overwrite any changes previously done through 
+    /// 'set_other' or 'with_other'.
+    pub fn set_visibility(&mut self, value: STVisibility) {
+        self.set_other(value.into());
+    }
+
+    /// Builder method to set the 'st_other' field as an enum
+    /// 
+    /// Setting the visibility through this method will
+    /// overwrite any changes previously done through 
+    /// 'set_other' or 'with_other'.
+    pub fn with_visibility(mut self, value: STVisibility) -> Self {
+        self.set_visibility(value);
+        self
+    }
+
+    /// Get the 'st_shndx' field of the symbol
+    pub fn shndx(&self) -> u16 {
+        self.st_shndx.get()
+    }
+
+    /// Set the 'st_shndx' field of the symbol
+    pub fn set_shndx(&mut self, value: u16) {
+        self.st_shndx.set(value);
+    }
+
+    /// Builder method to set the 'st_shndx' field of the symbol
+    pub fn with_shndx(mut self, value: u16) -> Self {
+        self.set_shndx(value);
+        self
+    }
+
+    /// Get the current layout of the symbol
+    pub fn layout(&self) -> Layout {
+        self.st_name.layout()
+    }
+
+    /// Set the current layout of the symbol
+    pub fn set_layout(&mut self, layout: Layout){
+        TableItem::set_layout(self, layout)
+    }
+
+    /// Builder method to set the layout of the symbol
+    pub fn with_layout(mut self, value: Layout) -> Self {
+        self.set_layout(value);
+        self
+    }
+
+    /// Get the current width of the symbol
+    pub fn width(&self) -> Width {
+        self.st_name.width()
+    }
+
+    /// Set the current width of the symbol
+    pub fn set_width(&mut self, width: Width){
+        TableItem::set_width(self, width)
+    }
+
+    /// Builder method to set the width of the symbol
+    pub fn with_width(mut self, value: Width) -> Self {
+        self.set_width(value);
+        self
+    }
+
+    /// Read all fields from a data buffer
+    pub fn read(&mut self, data: &[u8]) -> Result<()> {
+        TableItem::read(self, data)
+    }
+
+    /// Write all fields to a mutable data buffer
+    pub fn write(&self, data: &mut [u8]) -> Result<()> {
+        TableItem::write(self,data)
+    }
+
+    /// Get the calculated size of the symbol
+    pub fn item_size(&self) -> usize {
+        TableItem::size(self)
+    }
+
+    /// Finish building and validate the new symbol
+    pub fn build(self) -> Result<Self> {
+        self.validate()?;
+        Ok(self)
+    }
+
+    /// Validate the symbol fields
+    pub fn validate(&self) -> Result<()> {
+        STVisibility::try_from(self.other())?;
+        Ok(())
+    }
+
+}
+
+impl TableItem for Symbol {
+
+    fn set_layout(&mut self, layout: Layout){
+        self.st_name.set_layout(layout);
+        self.st_value.set_layout(layout);
+        self.st_size.set_layout(layout);
+        self.st_info.set_layout(layout);
+        self.st_other.set_layout(layout);
+        self.st_shndx.set_layout(layout);
+    }
+
+    fn set_width(&mut self, width: Width){
+        self.st_name.set_width(width);
+        self.st_value.set_width(width);
+        self.st_size.set_width(width);
+        self.st_info.set_width(width);
+        self.st_other.set_width(width);
+        self.st_shndx.set_width(width);
+    }
+
+    fn read(&mut self, b: &[u8]) -> Result<()> {
+        self.st_name.read(b)?;
+        self.st_value.read(b)?;
+        self.st_size.read(b)?;
+        self.st_info.read(b)?;
+        self.st_other.read(b)?;
+        self.st_shndx.read(b)?;
+        Ok(())
+    }
+
+    fn write(&self, b: &mut [u8]) -> Result<()> {
+        self.st_name.write(b)?;
+        self.st_value.write(b)?;
+        self.st_size.write(b)?;
+        self.st_info.write(b)?;
+        self.st_other.write(b)?;
+        self.st_shndx.write(b)?;
+        Ok(())
+    }
+
+    fn size(&self) -> usize {
+        self.st_name.size() +
+        self.st_value.size() +
+        self.st_size.size() +
+        self.st_info.size() +
+        self.st_other.size() +
+        self.st_shndx.size()
+    }
+
+}
+
+impl Default for Symbol {
+    fn default() -> Self {
+        Self::new()
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    macro_rules! setup_32 {
+        () => {{
+            let symbol = Symbol::new()
+                .with_layout(Layout::Little)
+                .with_width(Width::X32)
+                .build()
+                .unwrap();
+
+            // 32-bit, little-endian hex representation of a symbol
+            let data: [u8;16] = [
+                0x01, 0x00, 0x00, 0x00,                         // name:  1
+                0x01, 0x00, 0x00, 0x00,                         // value: 1
+                0x18, 0x00, 0x00, 0x00,                         // size:  24
+                0x21,                                           // info:  STB_WEAK + STT_OBJECT
+                0x01,                                           // other: 1
+                0x01, 0x00,                                     // shndx: 1
+            ];
+
+            (symbol,data)
+        }};
+    }
+
+    macro_rules! setup_64 {
+        () => {{
+            let symbol = Symbol::new()
+                .with_layout(Layout::Little)
+                .with_width(Width::X64)
+                .build()
+                .unwrap();
+    
+            // 64-bit, little-endian hex representation of a symbol
+            let data: [u8;24] = [
+                0x01, 0x00, 0x00, 0x00,                         // name:  1
+                0x21,                                           // info:  STB_WEAK + STT_OBJECT
+                0x01,                                           // other: 1
+                0x01, 0x00,                                     // shndx: 1
+                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // value: 1
+                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // size:  24
+            ];
+
+            (symbol,data)
+        }};
+    }
+
+    #[test]
+    fn test_create_symbol_64() {
+        let (_, data) = setup_64!();
+
+        let mut buffer: [u8;24] = [0;24];
+
+        let symbol = Symbol::new()
+            .with_layout(Layout::Little)
+            .with_width(Width::X64)
+            .with_visibility(STVisibility::STV_INTERNAL)
+            .with_bind(STBind::STB_WEAK)
+            .with_kind(STType::STT_OBJECT)
+            .with_name(1)
+            .with_value(1)
+            .with_size(24)
+            .with_shndx(1)
+            .build()
+            .unwrap();
+
+        let result = symbol.write(&mut buffer);
+
+        assert!(result.is_ok());
+        assert_eq!(buffer,data);
+    }
+
+    #[test]
+    fn test_symbol_read_write_name_64() {
+        let (mut symbol, mut data) = setup_64!();
+        let maximum = 0xffffffff;
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.name(),1);
+        
+        symbol.set_value(maximum);
+        assert_eq!(symbol.value(),maximum);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.value(),maximum);
+    }
+
+    #[test]
+    fn test_symbol_read_write_kind_64() {
+        let (mut symbol, mut data) = setup_64!();
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.kind(),STType::STT_OBJECT);
+        
+        symbol.set_kind(STType::STT_FUNC);
+        assert_eq!(symbol.kind(),STType::STT_FUNC);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.kind(),STType::STT_FUNC);
+    }
+
+    #[test]
+    fn test_symbol_read_write_bind_64() {
+        let (mut symbol, mut data) = setup_64!();
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.bind(),STBind::STB_WEAK);
+        
+        symbol.set_bind(STBind::STB_GLOBAL);
+        assert_eq!(symbol.bind(),STBind::STB_GLOBAL);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.bind(),STBind::STB_GLOBAL);
+    }
+
+    #[test]
+    fn test_symbol_read_write_shndx_64() {
+        let (mut symbol, mut data) = setup_64!();
+        let maximum = 0xffff;
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.shndx(),1);
+        
+        symbol.set_shndx(maximum);
+        assert_eq!(symbol.shndx(),maximum);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.shndx(),maximum);
+    }
+
+    #[test]
+    fn test_symbol_read_write_value_64() {
+        let (mut symbol, mut data) = setup_64!();
+        let maximum = 0xffffffffffffffff;
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.value(),1);
+        
+        symbol.set_value(maximum);
+        assert_eq!(symbol.value(),maximum);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.value(),maximum);
+    }
+
+    #[test]
+    fn test_symbol_read_write_size_64() {
+        let (mut symbol, mut data) = setup_64!();
+        let maximum = 0xffffffffffffffff;
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.size(),24);
+        
+        symbol.set_size(maximum);
+        assert_eq!(symbol.size(),maximum);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.size(),maximum);
+    }
+
+    #[test]
+    fn test_create_symbol_32() {
+        let (_, data) = setup_32!();
+
+        let mut buffer: [u8;16] = [0;16];
+
+        let symbol = Symbol::new()
+            .with_layout(Layout::Little)
+            .with_width(Width::X32)
+            .with_visibility(STVisibility::STV_INTERNAL)
+            .with_bind(STBind::STB_WEAK)
+            .with_kind(STType::STT_OBJECT)
+            .with_name(1)
+            .with_value(1)
+            .with_size(24)
+            .with_shndx(1)
+            .build()
+            .unwrap();
+
+        let result = symbol.write(&mut buffer);
+
+        assert!(result.is_ok());
+        assert_eq!(buffer,data);
+    }
+
+    #[test]
+    fn test_symbol_read_write_name_32() {
+        let (mut symbol, mut data) = setup_32!();
+        let maximum = 0xffff;
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.name(),1);
+        
+        symbol.set_value(maximum);
+        assert_eq!(symbol.value(),maximum);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.value(),maximum);
+    }
+
+    #[test]
+    fn test_symbol_read_write_kind_32() {
+        let (mut symbol, mut data) = setup_32!();
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.kind(),STType::STT_OBJECT);
+        
+        symbol.set_kind(STType::STT_FUNC);
+        assert_eq!(symbol.kind(),STType::STT_FUNC);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.kind(),STType::STT_FUNC);
+    }
+
+    #[test]
+    fn test_symbol_read_write_bind_32() {
+        let (mut symbol, mut data) = setup_32!();
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.bind(),STBind::STB_WEAK);
+        
+        symbol.set_bind(STBind::STB_GLOBAL);
+        assert_eq!(symbol.bind(),STBind::STB_GLOBAL);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.bind(),STBind::STB_GLOBAL);
+    }
+
+    #[test]
+    fn test_symbol_read_write_shndx_32() {
+        let (mut symbol, mut data) = setup_32!();
+        let maximum = 0xffff;
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.shndx(),1);
+        
+        symbol.set_shndx(maximum);
+        assert_eq!(symbol.shndx(),maximum);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.shndx(),maximum);
+    }
+
+    #[test]
+    fn test_symbol_read_write_value_32() {
+        let (mut symbol, mut data) = setup_32!();
+        let maximum = 0xffffffff;
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.value(),1);
+        
+        symbol.set_value(maximum);
+        assert_eq!(symbol.value(),maximum);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.value(),maximum);
+    }
+
+    #[test]
+    fn test_symbol_read_write_size_32() {
+        let (mut symbol, mut data) = setup_32!();
+        let maximum = 0xffffffff;
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.size(),24);
+        
+        symbol.set_size(maximum);
+        assert_eq!(symbol.size(),maximum);
+
+        let result = symbol.write(&mut data);
+        assert!(result.is_ok());
+
+        let result = symbol.read(&data);
+        assert!(result.is_ok());
+        assert_eq!(symbol.size(),maximum);
+    }
+}
\ No newline at end of file diff --git a/src/deaf/tables/info/mod.rs.html b/src/deaf/tables/info/mod.rs.html index 7b55163..a55a6ec 100644 --- a/src/deaf/tables/info/mod.rs.html +++ b/src/deaf/tables/info/mod.rs.html @@ -1,12 +1,8 @@ -mod.rs - source
1
+mod.rs - source
1
 2
 3
 4
-5
-6
 

-mod symbol;
 mod relocation;
 
-pub use symbol::SymbolInfo;
 pub use relocation::RelocationInfo;
\ No newline at end of file diff --git a/src/deaf/tables/info/relocation.rs.html b/src/deaf/tables/info/relocation.rs.html index 4b8de58..7e6f544 100644 --- a/src/deaf/tables/info/relocation.rs.html +++ b/src/deaf/tables/info/relocation.rs.html @@ -1,4 +1,4 @@ -relocation.rs - source
1
+relocation.rs - source
1
 2
 3
 4
diff --git a/src/deaf/tables/info/symbol.rs.html b/src/deaf/tables/info/symbol.rs.html
deleted file mode 100644
index 7f085b0..0000000
--- a/src/deaf/tables/info/symbol.rs.html
+++ /dev/null
@@ -1,224 +0,0 @@
-symbol.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-
use crate::errors::Result;
-use crate::common::{Convert, STBind, STType};
-
-/// Representation of the info field in a Symbol record
-#[derive(Default,Clone,Copy,PartialEq)]
-pub struct SymbolInfo {
-    bind: STBind,
-    kind: STType,
-}
-
-impl SymbolInfo {
-
-    /// Initialize an empty symbol info instance
-    pub fn empty() -> Self {
-        Self { 
-            bind: STBind::STB_LOCAL,
-            kind: STType::STT_NOTYPE
-        }
-    }
-
-    /// Parse a combined value as an info struct
-    pub fn new(v: u8) -> Result<Self> {
-        let bind = STBind::try_from(v >> 4)?;
-        let kind = STType::try_from(v & 0xf)?;
-        Ok(Self { bind, kind })
-    }
-
-    /// Get the combined value of the info struct
-    pub fn value(&self) -> u8 {
-        let b: u8 = self.bind.into();
-        let t: u8 = self.kind.into();
-        (b << 4) | t
-    }
-
-    /// Get the 'kind' component of the info struct
-    pub fn kind(&self) -> STType {
-        self.kind.clone()
-    }
-
-    /// Get the 'bind' component of the info struct
-    pub fn bind(&self) -> STBind {
-        self.bind.clone()
-    }
-
-}
-
-impl Convert<u8> for SymbolInfo {
-    fn convert(self) -> Result<u8> { Ok(self.value()) }
-}
-
-impl Convert<SymbolInfo> for u8 {
-    fn convert(self) -> Result<SymbolInfo> { SymbolInfo::new(self) }
-}
-
-impl std::fmt::Debug for SymbolInfo {
-    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
-        f.debug_struct("SymbolInfo")
-         .field("kind", &self.kind())
-         .field("bind", &self.bind())
-         .finish()
-    }
-}
-
-#[cfg(test)]
-mod tests {
-    use super::*;
-
-    #[test]
-    fn test_symbol_info_parse_pair() {
-        let value = 0x21; // STB_WEAK + STT_OBJECT
-        let result = SymbolInfo::new(value);
-
-        assert!(result.is_ok());
-        let info = result.unwrap();
-
-        assert_eq!(info.bind,STBind::STB_WEAK);
-        assert_eq!(info.kind,STType::STT_OBJECT);
-    }
-
-    #[test]
-    fn test_symbol_info_parse_zeroes() {
-        let value = 0x00; // STB_LOCAL + STT_NOTYPE
-        let result = SymbolInfo::new(value);
-
-        assert!(result.is_ok());
-        let info = result.unwrap();
-
-        assert_eq!(info.bind,STBind::STB_LOCAL);
-        assert_eq!(info.kind,STType::STT_NOTYPE);
-    }
-
-    #[test]
-    fn test_symbol_info_back_to_zeroes() {
-        let value = 0x00; // STB_LOCAL + STT_NOTYPE
-        let info = SymbolInfo::new(value).unwrap();
-        let result: Result<u8> = info.convert();
-
-        assert!(result.is_ok());
-        assert_eq!(result.unwrap(),value);
-    }
-
-    #[test]
-    fn test_symbol_info_back_to_value() {
-        let value = 0x21; // STB_WEAK + STT_OBJECT
-        let info = SymbolInfo::new(value).unwrap();
-        let result: Result<u8> = info.convert();
-
-        assert!(result.is_ok());
-        assert_eq!(result.unwrap(),value);
-    }
-
-}
\ No newline at end of file diff --git a/src/deaf/tables/items/array.rs.html b/src/deaf/tables/items/array.rs.html index fdcac90..c2b8573 100644 --- a/src/deaf/tables/items/array.rs.html +++ b/src/deaf/tables/items/array.rs.html @@ -1,4 +1,4 @@ -array.rs - source
1
+array.rs - source
1
 2
 3
 4
diff --git a/src/deaf/tables/items/mod.rs.html b/src/deaf/tables/items/mod.rs.html
index 125ae0e..7147ad7 100644
--- a/src/deaf/tables/items/mod.rs.html
+++ b/src/deaf/tables/items/mod.rs.html
@@ -1,4 +1,4 @@
-mod.rs - source
1
+mod.rs - source
1
 2
 3
 4
@@ -12,19 +12,15 @@
 12
 13
 14
-15
-16
 

 mod traits;
 mod string;
-mod symbol;
 mod relocation;
 mod array;
 
 pub use traits::TableItem;
 
 pub use string::StringItem;
-pub use symbol::SymbolItem;
 pub use array::ArrayItem;
 pub use relocation::{
     RelItem,
diff --git a/src/deaf/tables/items/relocation.rs.html b/src/deaf/tables/items/relocation.rs.html
index 8d70060..efc165f 100644
--- a/src/deaf/tables/items/relocation.rs.html
+++ b/src/deaf/tables/items/relocation.rs.html
@@ -1,4 +1,4 @@
-relocation.rs - source
1
+relocation.rs - source
1
 2
 3
 4
diff --git a/src/deaf/tables/items/string.rs.html b/src/deaf/tables/items/string.rs.html
index d55ba84..4a5a330 100644
--- a/src/deaf/tables/items/string.rs.html
+++ b/src/deaf/tables/items/string.rs.html
@@ -1,4 +1,4 @@
-string.rs - source
1
+string.rs - source
1
 2
 3
 4
diff --git a/src/deaf/tables/items/symbol.rs.html b/src/deaf/tables/items/symbol.rs.html
deleted file mode 100644
index ea1e800..0000000
--- a/src/deaf/tables/items/symbol.rs.html
+++ /dev/null
@@ -1,322 +0,0 @@
-symbol.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-
use crate::common::{
-    Width,
-    Layout,
-    Item,
-    ranges::*
-};
-use crate::tables::{
-    SymbolInfo,
-    TableItem
-};
-use crate::errors::Result;
-
-/// A Symbol item found in symbol tables
-#[derive(Clone,Debug)]
-pub struct SymbolItem {
-    st_name: Item<u32,u32>,
-    st_value: Item<u32,u64>,
-    st_size: Item<u32,u64>,
-    st_info: Item<u8,u8,SymbolInfo>,
-    st_other: Item<u8>,
-    st_shndx: Item<u16,u16>,
-}
-
-#[derive(Clone,Debug)]
-pub struct SymbolItemData {
-    st_name: u32,
-    st_value: u64,
-    st_size: u64,
-    st_info: SymbolInfo,
-    st_other: u8,
-    st_shndx: u16,
-}
-
-impl SymbolItem {
-
-    /// Get the 'st_name' attribute (name *index*) of the symbol
-    pub fn name(&self) -> u32 {
-        self.st_name.get()
-    }
-
-    /// Set the 'st_name' attribute (name *index*) of the symbol
-    pub fn set_name(&mut self, value: u32) {
-        self.st_name.set(value);
-    }
-
-    /// Get the 'st_value' attribute of the symbol
-    pub fn value(&self) -> u64 {
-        self.st_value.get()
-    }
-
-    /// Set the 'st_value' attribute of the symbol
-    pub fn set_value(&mut self, value: u64) {
-        self.st_value.set(value);
-    }
-
-    /// Get the 'st_size' attribute of the symbol
-    pub fn size(&self) -> u64 {
-        self.st_size.get()
-    }
-
-    /// Set the 'st_size' attribute of the symbol
-    pub fn set_size(&mut self, value: u64) {
-        self.st_size.set(value);
-    }
-
-    /// Get the 'st_info' attribute of the symbol
-    pub fn info(&self) -> SymbolInfo {
-        self.st_info.get()
-    }
-
-    /// Set the 'st_info' attribute of the symbol
-    pub fn set_info(&mut self, value: SymbolInfo) {
-        self.st_info.set(value);
-    }
-
-    /// Get the 'st_other' attribute of the symbol
-    pub fn other(&self) -> u8 {
-        self.st_other.get()
-    }
-
-    /// Set the 'st_other' attribute of the symbol
-    pub fn set_other(&mut self, value: u8) {
-        self.st_other.set(value);
-    }
-
-    /// Get the 'st_shndx' attribute of the symbol
-    pub fn shndx(&self) -> u16 {
-        self.st_shndx.get()
-    }
-
-    /// Set the 'st_shndx' attribute of the symbol
-    pub fn set_shndx(&mut self, value: u16) {
-        self.st_shndx.set(value);
-    }
-
-}
-
-
-impl TableItem for SymbolItem {
-
-    fn set_layout(&mut self, layout: Layout){
-        self.st_name.set_layout(layout);
-        self.st_value.set_layout(layout);
-        self.st_size.set_layout(layout);
-        self.st_info.set_layout(layout);
-        self.st_other.set_layout(layout);
-        self.st_shndx.set_layout(layout);
-    }
-
-    fn set_width(&mut self, width: Width){
-        self.st_name.set_width(width);
-        self.st_value.set_width(width);
-        self.st_size.set_width(width);
-        self.st_info.set_width(width);
-        self.st_other.set_width(width);
-        self.st_shndx.set_width(width);
-    }
-
-    fn read(&mut self, b: &[u8]) -> Result<()> {
-        self.st_name.read(b)?;
-        self.st_value.read(b)?;
-        self.st_size.read(b)?;
-        self.st_info.read(b)?;
-        self.st_other.read(b)?;
-        self.st_shndx.read(b)?;
-        Ok(())
-    }
-
-    fn write(&self, b: &mut [u8]) -> Result<()> {
-        self.st_name.write(b)?;
-        self.st_value.write(b)?;
-        self.st_size.write(b)?;
-        self.st_info.write(b)?;
-        self.st_other.write(b)?;
-        self.st_shndx.write(b)?;
-        Ok(())
-    }
-
-    fn size(&self) -> usize {
-        self.st_name.size() +
-        self.st_value.size() +
-        self.st_size.size() +
-        self.st_info.size() +
-        self.st_other.size() +
-        self.st_shndx.size()
-    }
-
-}
-
-impl Default for SymbolItem {
-    fn default() -> Self {
-        Self {
-            st_name: Item::new(ST_NAME), 
-            st_value: Item::new(ST_VALUE),
-            st_size: Item::new(ST_SIZE), 
-            st_info: Item::new(ST_INFO),    
-            st_other: Item::new(ST_OTHER),     
-            st_shndx: Item::new(ST_SHNDX),
-        }
-    }
-}
\ No newline at end of file diff --git a/src/deaf/tables/items/traits.rs.html b/src/deaf/tables/items/traits.rs.html index cf6d18f..2d3eac8 100644 --- a/src/deaf/tables/items/traits.rs.html +++ b/src/deaf/tables/items/traits.rs.html @@ -1,4 +1,4 @@ -traits.rs - source
1
+traits.rs - source
1
 2
 3
 4
diff --git a/src/deaf/tables/mod.rs.html b/src/deaf/tables/mod.rs.html
index 71880ba..3189fdb 100644
--- a/src/deaf/tables/mod.rs.html
+++ b/src/deaf/tables/mod.rs.html
@@ -1,4 +1,4 @@
-mod.rs - source
1
+mod.rs - source
1
 2
 3
 4
@@ -33,10 +33,6 @@
 33
 34
 35
-36
-37
-38
-39
 
//! Various types of tables and associated table items
 //!
 //! Each table type can be created (using TryFrom) from an appropriate section
@@ -47,17 +43,13 @@
 mod items;
 mod table;
 
-pub use info::{
-    SymbolInfo,
-    RelocationInfo,
-};
+pub use info::RelocationInfo;
 
 pub use items::{
     TableItem,
     RelItem,
     RelaItem,
     StringItem,
-    SymbolItem,
     ArrayItem,
 };
 
diff --git a/src/deaf/tables/table.rs.html b/src/deaf/tables/table.rs.html
index 5bba818..3744155 100644
--- a/src/deaf/tables/table.rs.html
+++ b/src/deaf/tables/table.rs.html
@@ -1,4 +1,4 @@
-table.rs - source
1
+table.rs - source
1
 2
 3
 4
@@ -973,17 +973,24 @@
 973
 974
 975
+976
+977
+978
+979
+980
+981
 
use std::marker::PhantomData;
 use crate::errors::{Error,Result};
 use crate::common::{ByteIter,SHType,Layout,Width};
-use crate::tables::{TableItem,StringItem,RelaItem,RelItem,SymbolItem,ArrayItem};
+use crate::tables::{TableItem,StringItem,RelaItem,RelItem,ArrayItem};
+use crate::symbols::Symbol;
 use crate::Section;
 
 pub type Array<'a> = Table<'a,ArrayItem>;
 pub type ArrayMut<'a> = TableMut<'a,ArrayItem>;
 
-pub type SymbolTable<'a> = Table<'a,SymbolItem>;
-pub type SymbolTableMut<'a> = TableMut<'a,SymbolItem>;
+pub type SymbolTable<'a> = Table<'a,Symbol>;
+pub type SymbolTableMut<'a> = TableMut<'a,Symbol>;
 
 pub type RelTable<'a> = Table<'a,RelItem>;
 pub type RelTableMut<'a> = TableMut<'a,RelItem>;
@@ -1002,6 +1009,11 @@
     /// Get an immutable reference to the internal section
     fn section(&self) -> &Section;
 
+    /// Get the name index of the internal section
+    fn name_index(&self) -> usize {
+        self.section().name_index()
+    }
+
     /// Get an iterator over each item's binary data
     fn iterator(&self) -> ByteIter {
         ByteIter::new(
@@ -1218,7 +1230,7 @@
     }
 }
 
-impl<'a> TryFrom<&'a Section> for Table<'a, SymbolItem> 
+impl<'a> TryFrom<&'a Section> for Table<'a, Symbol> 
 {
     type Error = Error;
 
@@ -1231,7 +1243,7 @@
     }
 }
 
-impl<'a> TryFrom<&'a mut Section> for TableMut<'a, SymbolItem>
+impl<'a> TryFrom<&'a mut Section> for TableMut<'a, Symbol>
 {
     type Error = Error;
 
@@ -1572,7 +1584,7 @@
         assert_eq!(table.len(),SYM_TEST.length);
         assert_eq!(table.size(),SYM_TEST.size);
 
-        let item1 = SymbolItem::default();
+        let item1 = Symbol::default();
 
         let result = table.prepend(item1.clone());
         assert!(result.is_ok());
@@ -1603,7 +1615,7 @@
         assert_eq!(table.len(),SYM_TEST.length);
         assert_eq!(table.size(),SYM_TEST.size);
 
-        let item1 = SymbolItem::default();
+        let item1 = Symbol::default();
 
         let result = table.append(item1.clone());
         assert!(result.is_ok());
@@ -1634,7 +1646,7 @@
         assert_eq!(table.len(),SYM_TEST.length);
         assert_eq!(table.size(),SYM_TEST.size);
 
-        let item1 = SymbolItem::default();
+        let item1 = Symbol::default();
 
         let result = table.insert(3,item1.clone());
         assert!(result.is_ok());
diff --git a/src/deaf/utilities.rs.html b/src/deaf/utilities.rs.html
index 06ec0f3..4ad6528 100644
--- a/src/deaf/utilities.rs.html
+++ b/src/deaf/utilities.rs.html
@@ -1,4 +1,4 @@
-utilities.rs - source
1
+utilities.rs - source
1
 2
 3
 4