Struct sequoia_openpgp::fmt::hex::Dumper

source ·
pub struct Dumper<W: Write> { /* private fields */ }
Expand description

Writes annotated hex dumps, like hd(1).

§Examples

use sequoia_openpgp::fmt::hex;

let mut dumper = hex::Dumper::new(Vec::new(), "");
dumper.write(&[0x89, 0x01, 0x33], "frame")?;
dumper.write(&[0x04], "version")?;
dumper.write(&[0x00], "type")?;

let buf = dumper.into_inner();
assert_eq!(
    ::std::str::from_utf8(&buf[..])?,
    "00000000  89 01 33                                           frame\n\
     00000003           04                                        version\n\
     00000004              00                                     type\n\
     ");

Implementations§

source§

impl<W: Write> Dumper<W>

source

pub fn new<I: AsRef<str>>(inner: W, indent: I) -> Self

Creates a new dumper.

The dump is written to inner. Every line is indented with indent.

source

pub fn with_offset<I>(inner: W, indent: I, offset: usize) -> Self
where I: AsRef<str>,

Creates a new dumper starting at the given offset.

The dump is written to inner. Every line is indented with indent.

source

pub fn into_inner(self) -> W

Returns the inner writer.

source

pub fn write<B, M>(&mut self, buf: B, msg: M) -> Result<()>
where B: AsRef<[u8]>, M: AsRef<str>,

Writes a chunk of data.

The msg is printed at the end of the first line.

source

pub fn write_ascii<B>(&mut self, buf: B) -> Result<()>
where B: AsRef<[u8]>,

Writes a chunk of data with ASCII-representation.

This produces output similar to hd(1).

source

pub fn write_labeled<B, L>(&mut self, buf: B, labeler: L) -> Result<()>
where B: AsRef<[u8]>, L: FnMut(usize, &[u8]) -> Option<String>,

Writes a chunk of data.

For each line, the given function is called to compute a label that printed at the end of the first line. The functions first argument is the offset in the current line (0..16), the second the slice of the displayed data.

Auto Trait Implementations§

§

impl<W> Freeze for Dumper<W>
where W: Freeze,

§

impl<W> RefUnwindSafe for Dumper<W>
where W: RefUnwindSafe,

§

impl<W> Send for Dumper<W>
where W: Send,

§

impl<W> Sync for Dumper<W>
where W: Sync,

§

impl<W> Unpin for Dumper<W>
where W: Unpin,

§

impl<W> UnwindSafe for Dumper<W>
where W: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where 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> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.