alloy_sol_types::abi

Struct Encoder

Source
pub struct Encoder { /* private fields */ }
Expand description

An ABI encoder.

This is not intended for public consumption. It should be used only by the token types. If you have found yourself here, you probably want to use the high-level crate::SolType interface (or its dynamic equivalent) instead.

Implementations§

Source§

impl Encoder

Source

pub const fn new() -> Self

Instantiate a new empty encoder.

Source

pub fn with_capacity(size: usize) -> Self

Instantiate a new encoder with a given capacity in words.

Source

pub fn finish(self) -> Vec<Word>

Finish the encoding process, returning the encoded words.

Use into_bytes instead to flatten the words into bytes.

Source

pub fn into_bytes(self) -> Vec<u8>

Finish the encoding process, returning the encoded bytes.

Source

pub fn suffix_offset(&self) -> usize

Determine the current suffix offset.

§Panics

Panics if there is no current suffix offset.

Source

pub fn push_offset(&mut self, words: usize)

Appends a suffix offset.

Source

pub fn pop_offset(&mut self) -> Option<usize>

Removes the last offset and returns it.

Source

pub fn bump_offset(&mut self, words: usize)

Bump the suffix offset by a given number of words.

Source

pub fn append_word(&mut self, word: Word)

Append a word to the encoder.

Source

pub fn append_indirection(&mut self)

Append a pointer to the current suffix offset.

§Panics

Panics if there is no current suffix offset.

Source

pub fn append_seq_len(&mut self, len: usize)

Append a sequence length.

Source

pub fn append_packed_seq(&mut self, bytes: &[u8])

Append a sequence of bytes as a packed sequence with a length prefix.

Source

pub fn append_head_tail<'a, T: TokenSeq<'a>>(&mut self, token: &T)

Shortcut for appending a token sequence.

Trait Implementations§

Source§

impl Clone for Encoder

Source§

fn clone(&self) -> Encoder

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 Encoder

Source§

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

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

impl Default for Encoder

Source§

fn default() -> Encoder

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

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

Source§

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

Source§

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>,

Source§

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V