yaxpeax_arch

Trait ReaderBuilder

Source
pub trait ReaderBuilder<Address: AddressBase, Item>
where Self: Sized,
{ type Result: Reader<Address, Item>; // Required method fn read_at(data: Self, addr: Address) -> Self::Result; // Provided method fn read_from(data: Self) -> Self::Result { ... } }
Expand description

a trait defining how to build a Reader<Address, Item> from some data source (Self). definitions of ReaderBuilder are provided for U8Reader on Address and Word types that yaxpeax_arch provides - external decoder implementations should also provide ReaderBuilder impls if they use custom Reader types.

Required Associated Types§

Source

type Result: Reader<Address, Item>

Required Methods§

Source

fn read_at(data: Self, addr: Address) -> Self::Result

construct a reader from data beginning at addr from its beginning.

Provided Methods§

Source

fn read_from(data: Self) -> Self::Result

construct a reader from data beginning at the start of data.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'data> ReaderBuilder<u16, u8> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u16) -> Self::Result

Source§

impl<'data> ReaderBuilder<u16, U16be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u16) -> Self::Result

Source§

impl<'data> ReaderBuilder<u16, U16le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u16) -> Self::Result

Source§

impl<'data> ReaderBuilder<u16, U32be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u16) -> Self::Result

Source§

impl<'data> ReaderBuilder<u16, U32le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u16) -> Self::Result

Source§

impl<'data> ReaderBuilder<u16, U64be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u16) -> Self::Result

Source§

impl<'data> ReaderBuilder<u16, U64le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u16) -> Self::Result

Source§

impl<'data> ReaderBuilder<u32, u8> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u32) -> Self::Result

Source§

impl<'data> ReaderBuilder<u32, U16be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u32) -> Self::Result

Source§

impl<'data> ReaderBuilder<u32, U16le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u32) -> Self::Result

Source§

impl<'data> ReaderBuilder<u32, U32be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u32) -> Self::Result

Source§

impl<'data> ReaderBuilder<u32, U32le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u32) -> Self::Result

Source§

impl<'data> ReaderBuilder<u32, U64be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u32) -> Self::Result

Source§

impl<'data> ReaderBuilder<u32, U64le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u32) -> Self::Result

Source§

impl<'data> ReaderBuilder<u64, u8> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u64) -> Self::Result

Source§

impl<'data> ReaderBuilder<u64, U16be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u64) -> Self::Result

Source§

impl<'data> ReaderBuilder<u64, U16le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u64) -> Self::Result

Source§

impl<'data> ReaderBuilder<u64, U32be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u64) -> Self::Result

Source§

impl<'data> ReaderBuilder<u64, U32le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u64) -> Self::Result

Source§

impl<'data> ReaderBuilder<u64, U64be> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u64) -> Self::Result

Source§

impl<'data> ReaderBuilder<u64, U64le> for &'data [u8]

Source§

type Result = U8Reader<'data>

Source§

fn read_at(data: Self, addr: u64) -> Self::Result

Implementors§