SolidityDataType

Enum SolidityDataType 

Source
pub enum SolidityDataType<'a> {
    String(&'a str),
    Address(Address),
    Bytes(&'a [u8]),
    Bool(bool),
    Number(U256),
    NumberWithShift(U256, TakeLastXBytes),
}
Expand description

Represents a data type in solidity

use eth_encode_packed::SolidityDataType;
use eth_encode_packed::TakeLastXBytes;
use eth_encode_packed::ethabi::ethereum_types::{U256, Address};
// Uint24
SolidityDataType::NumberWithShift(U256::from(3838), TakeLastXBytes(24));
// String
SolidityDataType::String("ipfs-cid-url-very-long");
// Bool
SolidityDataType::Bool(true);
// Address
use std::convert::TryInto;

let address = hex::decode("d8b934580fcE35a11B58C6D73aDeE468a2833fa8").unwrap();
let address: [u8; 20] = address.try_into().unwrap();
SolidityDataType::Address(Address::from(address));

Variants§

§

String(&'a str)

§

Address(Address)

§

Bytes(&'a [u8])

§

Bool(bool)

§

Number(U256)

§

NumberWithShift(U256, TakeLastXBytes)

Auto Trait Implementations§

§

impl<'a> Freeze for SolidityDataType<'a>

§

impl<'a> RefUnwindSafe for SolidityDataType<'a>

§

impl<'a> Send for SolidityDataType<'a>

§

impl<'a> Sync for SolidityDataType<'a>

§

impl<'a> Unpin for SolidityDataType<'a>

§

impl<'a> UnwindSafe for SolidityDataType<'a>

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

Source§

type Output = T

Should always be Self
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