Trait scroll::ctx::TryIntoCtx[][src]

pub trait TryIntoCtx<Ctx: Copy = (), This: ?Sized = [u8]>: Sized {
    type Error;
    fn try_into_ctx(self, _: &mut This, ctx: Ctx) -> Result<usize, Self::Error>;
}
[]

Tries to write Self into This using the context Ctx To implement writing into an arbitrary byte buffer, implement TryIntoCtx

Example

use scroll::{self, ctx, LE, Endian, Pwrite};
#[derive(Debug, PartialEq, Eq)]
pub struct Foo(u16);

// this will use the default `DefaultCtx = scroll::Endian`
impl ctx::TryIntoCtx<Endian> for Foo {
    // you can use your own error here too, but you will then need to specify it in fn generic parameters
    type Error = scroll::Error;
    // you can write using your own context type, see `leb128.rs`
    fn try_into_ctx(self, this: &mut [u8], le: Endian) -> Result<usize, Self::Error> {
        if this.len() < 2 { return Err((scroll::Error::Custom("whatever".to_string())).into()) }
        this.pwrite_with(self.0, 0, le)?;
        Ok(2)
    }
}
// now we can write a `Foo` into some buffer (in this case, a byte buffer, because that's what we implemented it for above)

let mut bytes: [u8; 4] = [0, 0, 0, 0];
bytes.pwrite_with(Foo(0x7f), 1, LE).unwrap();

Associated Types

type Error[src]

Required methods

fn try_into_ctx(self, _: &mut This, ctx: Ctx) -> Result<usize, Self::Error>[src]

Implementations on Foreign Types

impl TryIntoCtx<Endian, [u8]> for u8 where
    u8: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a u8[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for i8 where
    i8: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a i8[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for u16 where
    u16: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a u16[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for i16 where
    i16: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a i16[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for u32 where
    u32: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a u32[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for i32 where
    i32: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a i32[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for u64 where
    u64: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a u64[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for i64 where
    i64: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a i64[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for u128 where
    u128: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a u128[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for i128 where
    i128: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a i128[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for f32 where
    f32: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a f32[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for f64 where
    f64: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<Endian, [u8]> for &'a f64[src][]

type Error = Error

impl<'a> TryIntoCtx<(), [u8]> for &'a [u8][src][]

type Error = Error

impl<'a> TryIntoCtx<(), [u8]> for &'a str[src][]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for usize where
    usize: IntoCtx<Endian>, 
[src][]

type Error = Error

impl<'a> TryIntoCtx<(), [u8]> for &'a CStr[src][]

type Error = Error

impl TryIntoCtx<(), [u8]> for CString[src][]

type Error = Error

Implementors

impl<'a> TryIntoCtx<Endian, [u8]> for &'a CompressionHeader

impl TryIntoCtx<Endian, [u8]> for CompressionHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a CompressionHeader

impl TryIntoCtx<Endian, [u8]> for CompressionHeader

impl TryIntoCtx<Ctx, [u8]> for CompressionHeader

impl TryIntoCtx<Endian, [u8]> for Header

impl TryIntoCtx<Endian, [u8]> for Header

impl TryIntoCtx<Endian, [u8]> for Header

impl TryIntoCtx<Ctx, [u8]> for ProgramHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a ProgramHeader

impl TryIntoCtx<Endian, [u8]> for ProgramHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a ProgramHeader

impl TryIntoCtx<Endian, [u8]> for ProgramHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SectionHeader

impl TryIntoCtx<Endian, [u8]> for SectionHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SectionHeader

impl TryIntoCtx<Endian, [u8]> for SectionHeader

impl TryIntoCtx<Ctx, [u8]> for SectionHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Sym

impl TryIntoCtx<Endian, [u8]> for Sym

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Sym

impl TryIntoCtx<Endian, [u8]> for Sym

impl TryIntoCtx<Ctx, [u8]> for Sym

impl TryIntoCtx<Ctx, [u8]> for Dyn

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Dyn

impl TryIntoCtx<Endian, [u8]> for Dyn

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Dyn

impl TryIntoCtx<Endian, [u8]> for Dyn

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Rela

impl TryIntoCtx<Endian, [u8]> for Rela

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Rel

impl TryIntoCtx<Endian, [u8]> for Rel

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Rela

impl TryIntoCtx<Endian, [u8]> for Rela

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Rel

impl TryIntoCtx<Endian, [u8]> for Rel

impl TryIntoCtx<(bool, Ctx), [u8]> for Reloc

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Nhdr32

impl TryIntoCtx<Endian, [u8]> for Nhdr32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Nhdr64

impl TryIntoCtx<Endian, [u8]> for Nhdr64

impl<'a> TryIntoCtx<Endian, [u8]> for &'a FatHeader

impl TryIntoCtx<Endian, [u8]> for FatHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a FatArch

impl TryIntoCtx<Endian, [u8]> for FatArch

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Header32

impl TryIntoCtx<Endian, [u8]> for Header32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Header64

impl TryIntoCtx<Endian, [u8]> for Header64

impl TryIntoCtx<Ctx, [u8]> for Header

impl<'a> TryIntoCtx<Endian, [u8]> for &'a LoadCommandHeader

impl TryIntoCtx<Endian, [u8]> for LoadCommandHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Section32

impl TryIntoCtx<Endian, [u8]> for Section32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Section64

impl TryIntoCtx<Endian, [u8]> for Section64

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SegmentCommand32

impl TryIntoCtx<Endian, [u8]> for SegmentCommand32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SegmentCommand64

impl TryIntoCtx<Endian, [u8]> for SegmentCommand64

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Fvmlib

impl TryIntoCtx<Endian, [u8]> for Fvmlib

impl<'a> TryIntoCtx<Endian, [u8]> for &'a FvmlibCommand

impl TryIntoCtx<Endian, [u8]> for FvmlibCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Dylib

impl TryIntoCtx<Endian, [u8]> for Dylib

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DylibCommand

impl TryIntoCtx<Endian, [u8]> for DylibCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SubFrameworkCommand

impl TryIntoCtx<Endian, [u8]> for SubFrameworkCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SubClientCommand

impl TryIntoCtx<Endian, [u8]> for SubClientCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SubUmbrellaCommand

impl TryIntoCtx<Endian, [u8]> for SubUmbrellaCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SubLibraryCommand

impl TryIntoCtx<Endian, [u8]> for SubLibraryCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a PreboundDylibCommand

impl TryIntoCtx<Endian, [u8]> for PreboundDylibCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DylinkerCommand

impl TryIntoCtx<Endian, [u8]> for DylinkerCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a RoutinesCommand32

impl TryIntoCtx<Endian, [u8]> for RoutinesCommand32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a RoutinesCommand64

impl TryIntoCtx<Endian, [u8]> for RoutinesCommand64

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SymtabCommand

impl TryIntoCtx<Endian, [u8]> for SymtabCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DysymtabCommand

impl TryIntoCtx<Endian, [u8]> for DysymtabCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DylibTableOfContents

impl TryIntoCtx<Endian, [u8]> for DylibTableOfContents

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DylibModule

impl TryIntoCtx<Endian, [u8]> for DylibModule

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DylibModule64

impl TryIntoCtx<Endian, [u8]> for DylibModule64

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DylibReference

impl TryIntoCtx<Endian, [u8]> for DylibReference

impl<'a> TryIntoCtx<Endian, [u8]> for &'a TwolevelHintsCommand

impl TryIntoCtx<Endian, [u8]> for TwolevelHintsCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a TwolevelHint

impl TryIntoCtx<Endian, [u8]> for TwolevelHint

impl<'a> TryIntoCtx<Endian, [u8]> for &'a PrebindCksumCommand

impl TryIntoCtx<Endian, [u8]> for PrebindCksumCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a UuidCommand

impl TryIntoCtx<Endian, [u8]> for UuidCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a RpathCommand

impl TryIntoCtx<Endian, [u8]> for RpathCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a LinkeditDataCommand

impl TryIntoCtx<Endian, [u8]> for LinkeditDataCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a EncryptionInfoCommand32

impl TryIntoCtx<Endian, [u8]> for EncryptionInfoCommand32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a EncryptionInfoCommand64

impl TryIntoCtx<Endian, [u8]> for EncryptionInfoCommand64

impl<'a> TryIntoCtx<Endian, [u8]> for &'a VersionMinCommand

impl TryIntoCtx<Endian, [u8]> for VersionMinCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DyldInfoCommand

impl TryIntoCtx<Endian, [u8]> for DyldInfoCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a LinkerOptionCommand

impl TryIntoCtx<Endian, [u8]> for LinkerOptionCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SymsegCommand

impl TryIntoCtx<Endian, [u8]> for SymsegCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a IdentCommand

impl TryIntoCtx<Endian, [u8]> for IdentCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a FvmfileCommand

impl TryIntoCtx<Endian, [u8]> for FvmfileCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a EntryPointCommand

impl TryIntoCtx<Endian, [u8]> for EntryPointCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a SourceVersionCommand

impl TryIntoCtx<Endian, [u8]> for SourceVersionCommand

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DataInCodeEntry

impl TryIntoCtx<Endian, [u8]> for DataInCodeEntry

impl<'a> TryIntoCtx<Endian, [u8]> for &'a RelocationInfo

impl TryIntoCtx<Endian, [u8]> for RelocationInfo

impl TryIntoCtx<Ctx, [u8]> for Section

impl<'a> TryIntoCtx<Ctx, [u8]> for Segment<'a>

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Nlist32

impl TryIntoCtx<Endian, [u8]> for Nlist32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Nlist64

impl TryIntoCtx<Endian, [u8]> for Nlist64

impl TryIntoCtx<Ctx, [u8]> for Nlist

impl<'a> TryIntoCtx<Endian, [u8]> for &'a DataDirectory

impl TryIntoCtx<Endian, [u8]> for DataDirectory

impl<'a> TryIntoCtx<Endian, [u8]> for &'a ImageDebugDirectory

impl TryIntoCtx<Endian, [u8]> for ImageDebugDirectory

impl<'a> TryIntoCtx<Endian, [u8]> for &'a RuntimeFunction

impl TryIntoCtx<Endian, [u8]> for RuntimeFunction

impl<'a> TryIntoCtx<Endian, [u8]> for &'a ExportDirectoryTable

impl TryIntoCtx<Endian, [u8]> for ExportDirectoryTable

impl<'a> TryIntoCtx<Endian, [u8]> for &'a CoffHeader

impl TryIntoCtx<Endian, [u8]> for CoffHeader

impl<'a> TryIntoCtx<Endian, [u8]> for &'a ImportDirectoryEntry

impl TryIntoCtx<Endian, [u8]> for ImportDirectoryEntry

impl<'a> TryIntoCtx<Endian, [u8]> for &'a StandardFields32

impl TryIntoCtx<Endian, [u8]> for StandardFields32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a StandardFields64

impl TryIntoCtx<Endian, [u8]> for StandardFields64

impl<'a> TryIntoCtx<Endian, [u8]> for &'a WindowsFields32

impl TryIntoCtx<Endian, [u8]> for WindowsFields32

impl<'a> TryIntoCtx<Endian, [u8]> for &'a WindowsFields64

impl TryIntoCtx<Endian, [u8]> for WindowsFields64

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Relocation

impl TryIntoCtx<Endian, [u8]> for Relocation

impl TryIntoCtx<Endian, [u8]> for SectionTable

impl<'a> TryIntoCtx<Endian, [u8]> for &'a Symbol

impl TryIntoCtx<Endian, [u8]> for Symbol

impl<'a> TryIntoCtx<Endian, [u8]> for &'a AuxFunctionDefinition

impl TryIntoCtx<Endian, [u8]> for AuxFunctionDefinition

impl<'a> TryIntoCtx<Endian, [u8]> for &'a AuxBeginAndEndFunction

impl TryIntoCtx<Endian, [u8]> for AuxBeginAndEndFunction

impl<'a> TryIntoCtx<Endian, [u8]> for &'a AuxWeakExternal

impl TryIntoCtx<Endian, [u8]> for AuxWeakExternal

impl<'a> TryIntoCtx<Endian, [u8]> for &'a AuxSectionDefinition

impl TryIntoCtx<Endian, [u8]> for AuxSectionDefinition

impl<'a> TryIntoCtx<Endian, [u8]> for &'a MemberHeader

impl TryIntoCtx<Endian, [u8]> for MemberHeader