pub struct Bytecode { /* private fields */ }
Expand description

EVM Bytecode

Implementations§

source§

impl Bytecode

source

pub fn from_raw_unchecked(input: Vec<u8>) -> Self

Build not checked bytecode

source

pub fn code(&self) -> Vec<u8>

Get the code

source

pub fn code_vec(&self) -> Vec<(u8, bool)>

Get the code and is_code

source

pub fn codesize(&self) -> usize

Geth the code size

source

pub fn hash(&self) -> Word

Get the code hash

source

pub fn hash_h256(&self) -> Hash

Get the code hash

source

pub fn get(&self, index: usize) -> Option<(u8, bool)>

Get the bytecode element at an index.

source

pub fn get_byte(&self, index: usize) -> Option<u8>

Get the bytecode element at an index.

source

pub fn append(&mut self, other: &Bytecode)

Append

source

pub fn write_op(&mut self, op: OpcodeId) -> &mut Self

Write op

source

pub fn write(&mut self, value: u8, is_code: bool) -> &mut Self

Write byte

source

pub fn push<T: ToWord>(&mut self, n: u8, value: T) -> &mut Self

Push, value is useless for PUSH0

source

pub fn add_marker(&mut self, marker: String) -> &mut Self

Add marker

source

pub fn insert_marker(&mut self, marker: &str, pos: usize)

Insert marker

source

pub fn get_pos(&self, marker: &str) -> usize

Get the position of a marker

source

pub fn setup_state(&mut self) -> &mut Self

Setup state

source

pub fn append_op(&mut self, op: OpcodeWithData) -> &mut Self

Append an opcode

source

pub fn iter(&self) -> BytecodeIterator<'_>

create iterator

source

pub fn op_jumpdest(&mut self) -> usize

JUMPDEST opcode

source

pub fn store_code_to_mem(&mut self, code: &Self)

Append the instructions to store another code to memory

source§

impl Bytecode

source

pub fn op_push0(&mut self) -> &mut Self

Helper function for PUSH0

source§

impl Bytecode

source

pub fn op_push1<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push2<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push3<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push4<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push5<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push6<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push7<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push8<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push9<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push10<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push11<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push12<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push13<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push14<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push15<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push16<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push17<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push18<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push19<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push20<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push21<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push22<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push23<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push24<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push25<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push26<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push27<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push28<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push29<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push30<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push31<T: ToWord>(&mut self, value: T) -> &mut Self

source

pub fn op_push32<T: ToWord>(&mut self, value: T) -> &mut Self

source§

impl Bytecode

source

pub fn op_stop(&mut self) -> &mut Self

source

pub fn op_add<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_mul<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_sub<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_div<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_sdiv<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_mod<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_smod<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_addmod<A: ToWord, B: ToWord, N: ToWord>( &mut self, a: A, b: B, n: N ) -> &mut Self

source

pub fn op_mulmod<A: ToWord, B: ToWord, N: ToWord>( &mut self, a: A, b: B, n: N ) -> &mut Self

source

pub fn op_exp<A: ToWord, B: ToWord>(&mut self, a: A, exponent: B) -> &mut Self

source

pub fn op_signextend<A: ToWord, B: ToWord>(&mut self, b: A, x: B) -> &mut Self

source

pub fn op_lt<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_gt<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_slt<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_sgt<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_eq<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_iszero<A: ToWord>(&mut self, a: A) -> &mut Self

source

pub fn op_and<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_or<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_xor<A: ToWord, B: ToWord>(&mut self, a: A, b: B) -> &mut Self

source

pub fn op_not<A: ToWord>(&mut self, a: A) -> &mut Self

source

pub fn op_byte<I: ToWord, X: ToWord>(&mut self, i: I, x: X) -> &mut Self

source

pub fn op_shl<S: ToWord, V: ToWord>(&mut self, shift: S, value: V) -> &mut Self

source

pub fn op_shr<S: ToWord, V: ToWord>(&mut self, shift: S, value: V) -> &mut Self

source

pub fn op_sar<S: ToWord, V: ToWord>(&mut self, shift: S, value: V) -> &mut Self

source

pub fn op_sha3<O: ToWord, S: ToWord>(&mut self, offset: O, size: S) -> &mut Self

source

pub fn op_address(&mut self) -> &mut Self

source

pub fn op_balance<A: ToWord>(&mut self, address: A) -> &mut Self

source

pub fn op_origin(&mut self) -> &mut Self

source

pub fn op_caller(&mut self) -> &mut Self

source

pub fn op_callvalue(&mut self) -> &mut Self

source

pub fn op_calldataload<I: ToWord>(&mut self, i: I) -> &mut Self

source

pub fn op_calldatasize(&mut self) -> &mut Self

source

pub fn op_calldatacopy<D: ToWord, B: ToWord, C: ToWord>( &mut self, dest_offset: D, offset: B, size: C ) -> &mut Self

source

pub fn op_codesize(&mut self) -> &mut Self

source

pub fn op_codecopy<D: ToWord, B: ToWord, C: ToWord>( &mut self, dest_offset: D, offset: B, size: C ) -> &mut Self

source

pub fn op_gasprice(&mut self) -> &mut Self

source

pub fn op_extcodesize<A: ToWord>(&mut self, address: A) -> &mut Self

source

pub fn op_extcodecopy<A: ToWord, D: ToWord, B: ToWord, C: ToWord>( &mut self, address: A, dest_offset: D, offset: B, size: C ) -> &mut Self

source

pub fn op_returndatasize(&mut self) -> &mut Self

source

pub fn op_returndatacopy<D: ToWord, B: ToWord, C: ToWord>( &mut self, dest_offset: D, offset: B, size: C ) -> &mut Self

source

pub fn op_extcodehash<A: ToWord>(&mut self, address: A) -> &mut Self

source

pub fn op_blockhash<B: ToWord>(&mut self, blocknumber: B) -> &mut Self

source

pub fn op_coinbase(&mut self) -> &mut Self

source

pub fn op_timestamp(&mut self) -> &mut Self

source

pub fn op_number(&mut self) -> &mut Self

source

pub fn op_prevrandao(&mut self) -> &mut Self

source

pub fn op_difficulty(&mut self) -> &mut Self

source

pub fn op_gaslimit(&mut self) -> &mut Self

source

pub fn op_chainid(&mut self) -> &mut Self

source

pub fn op_selfbalance(&mut self) -> &mut Self

source

pub fn op_pop(&mut self) -> &mut Self

source

pub fn op_mload<O: ToWord>(&mut self, offset: O) -> &mut Self

source

pub fn op_mstore<O: ToWord, V: ToWord>( &mut self, offset: O, value: V ) -> &mut Self

source

pub fn op_mstore8<O: ToWord, V: ToWord>( &mut self, offset: O, value: V ) -> &mut Self

source

pub fn op_sload<O: ToWord>(&mut self, offset: O) -> &mut Self

source

pub fn op_sstore<O: ToWord, V: ToWord>( &mut self, offset: O, value: V ) -> &mut Self

source

pub fn op_jump<C: ToWord>(&mut self, counter: C) -> &mut Self

source

pub fn op_jumpi<C: ToWord>(&mut self, counter: C) -> &mut Self

source

pub fn op_pc(&mut self) -> &mut Self

source

pub fn op_msize(&mut self) -> &mut Self

source

pub fn op_gas(&mut self) -> &mut Self

source

pub fn op_dup1(&mut self) -> &mut Self

source

pub fn op_dup2(&mut self) -> &mut Self

source

pub fn op_dup3(&mut self) -> &mut Self

source

pub fn op_dup4(&mut self) -> &mut Self

source

pub fn op_dup5(&mut self) -> &mut Self

source

pub fn op_dup6(&mut self) -> &mut Self

source

pub fn op_dup7(&mut self) -> &mut Self

source

pub fn op_dup8(&mut self) -> &mut Self

source

pub fn op_dup9(&mut self) -> &mut Self

source

pub fn op_dup10(&mut self) -> &mut Self

source

pub fn op_dup11(&mut self) -> &mut Self

source

pub fn op_dup12(&mut self) -> &mut Self

source

pub fn op_dup13(&mut self) -> &mut Self

source

pub fn op_dup14(&mut self) -> &mut Self

source

pub fn op_dup15(&mut self) -> &mut Self

source

pub fn op_dup16(&mut self) -> &mut Self

source

pub fn op_swap1(&mut self) -> &mut Self

source

pub fn op_swap2(&mut self) -> &mut Self

source

pub fn op_swap3(&mut self) -> &mut Self

source

pub fn op_swap4(&mut self) -> &mut Self

source

pub fn op_swap5(&mut self) -> &mut Self

source

pub fn op_swap6(&mut self) -> &mut Self

source

pub fn op_swap7(&mut self) -> &mut Self

source

pub fn op_swap8(&mut self) -> &mut Self

source

pub fn op_swap9(&mut self) -> &mut Self

source

pub fn op_swap10(&mut self) -> &mut Self

source

pub fn op_swap11(&mut self) -> &mut Self

source

pub fn op_swap12(&mut self) -> &mut Self

source

pub fn op_swap13(&mut self) -> &mut Self

source

pub fn op_swap14(&mut self) -> &mut Self

source

pub fn op_swap15(&mut self) -> &mut Self

source

pub fn op_swap16(&mut self) -> &mut Self

source

pub fn op_log0<O: ToWord, S: ToWord>(&mut self, offset: O, size: S) -> &mut Self

source

pub fn op_log1<O: ToWord, S: ToWord, T1: ToWord>( &mut self, offset: O, size: S, topic1: T1 ) -> &mut Self

source

pub fn op_log2<O: ToWord, S: ToWord, T1: ToWord, T2: ToWord>( &mut self, offset: O, size: S, topic1: T1, topic2: T2 ) -> &mut Self

source

pub fn op_log3<O: ToWord, S: ToWord, T1: ToWord, T2: ToWord, T3: ToWord>( &mut self, offset: O, size: S, topic1: T1, topic2: T2, topic3: T3 ) -> &mut Self

source

pub fn op_log4<O: ToWord, S: ToWord, T1: ToWord, T2: ToWord, T3: ToWord, T4: ToWord>( &mut self, offset: O, size: S, topic1: T1, topic2: T2, topic3: T3, topic4: T4 ) -> &mut Self

source

pub fn op_create<V: ToWord, O: ToWord, S: ToWord>( &mut self, value: V, offset: O, size: S ) -> &mut Self

source

pub fn op_call<G: ToWord, A: ToWord, V: ToWord, AO: ToWord, AS: ToWord, RO: ToWord, RS: ToWord>( &mut self, gas: G, address: A, value: V, args_offset: AO, args_size: AS, ret_offset: RO, ret_size: RS ) -> &mut Self

source

pub fn op_callcode<G: ToWord, A: ToWord, V: ToWord, AO: ToWord, AS: ToWord, RO: ToWord, RS: ToWord>( &mut self, gas: G, address: A, value: V, args_offset: AO, args_size: AS, ret_offset: RO, ret_size: RS ) -> &mut Self

source

pub fn op_return<O: ToWord, S: ToWord>( &mut self, offset: O, size: S ) -> &mut Self

source

pub fn op_delegatecall<G: ToWord, A: ToWord, AO: ToWord, AS: ToWord, RO: ToWord, RS: ToWord>( &mut self, gas: G, address: A, args_offset: AO, args_size: AS, ret_offset: RO, ret_size: RS ) -> &mut Self

source

pub fn op_create2<V: ToWord, O: ToWord, SI: ToWord, SA: ToWord>( &mut self, value: V, offset: O, size: SI, salt: SA ) -> &mut Self

source

pub fn op_staticcall<G: ToWord, A: ToWord, AO: ToWord, AS: ToWord, RO: ToWord, RS: ToWord>( &mut self, gas: G, address: A, args_offset: AO, args_size: AS, ret_offset: RO, ret_size: RS ) -> &mut Self

source

pub fn op_revert<O: ToWord, S: ToWord>( &mut self, offset: O, size: S ) -> &mut Self

Trait Implementations§

source§

impl Clone for Bytecode

source§

fn clone(&self) -> Bytecode

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 Bytecode

source§

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

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

impl Default for Bytecode

source§

fn default() -> Bytecode

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

impl From<Bytecode> for Bytes

source§

fn from(code: Bytecode) -> Self

Converts to this type from the input type.
source§

impl From<Vec<u8>> for Bytecode

source§

fn from(input: Vec<u8>) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Bytecode

source§

fn eq(&self, other: &Bytecode) -> 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 Eq for Bytecode

source§

impl StructuralPartialEq for Bytecode

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
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for T
where 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
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

impl<T> SyncDeps for T