pub enum Type {
Show 21 variants
Address(u16),
DynamicAddress,
Bool,
Int(u16),
Uint(u16),
Bytes(u8),
DynamicBytes,
String,
Enum(u8),
Struct(u8),
Mapping(Box<Type>, Box<Type>),
Contract,
Ref(Box<Type>),
Option(Box<Type>),
OptionalInsurance,
OptionalReward,
StorageRef(Box<Type>),
Value,
Slice,
Hasher(HasherAlgo, u16),
Crypto(CryptoAlgo),
}Expand description
ToDo: Introduce Compact Encoding for u8 + u16 + u32
Variants§
Address(u16)
DynamicAddress
Bool
Int(u16)
Uint(u16)
Bytes(u8)
where u8 is bytes length
DynamicBytes
String
Enum(u8)
Struct(u8)
Mapping(Box<Type>, Box<Type>)
Contract
Ref(Box<Type>)
Option(Box<Type>)
OptionalInsurance
OptionalReward
StorageRef(Box<Type>)
Value
There is no way to declare value in Solidity (should there be?)
Slice
DynamicBytes and String are lowered to a vector.
Hasher(HasherAlgo, u16)
Crypto(CryptoAlgo)
Implementations§
Source§impl Type
impl Type
Sourcepub fn size_of(&self, gen: &GatewayABIConfig) -> Result<usize, &'static str>
pub fn size_of(&self, gen: &GatewayABIConfig) -> Result<usize, &'static str>
Calculate how much memory we expect this type to use when allocated on the stack or on the heap. Depending on the llvm implementation there might be padding between elements which is not accounted for.
pub fn to_string_bytes(&self) -> &[u8] ⓘ
Trait Implementations§
Source§impl Decode for Type
impl Decode for Type
Source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy,
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>
Attempt to deserialise the value from input.
Source§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
Source§impl<'de> Deserialize<'de> for Type
impl<'de> Deserialize<'de> for Type
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Encode for Type
impl Encode for Type
Source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
Source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy,
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )
Convert self to a slice and append it to the destination.
Source§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
Convert self to a slice and then invoke the given closure with it.
Source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
impl EncodeLike for Type
impl Eq for Type
impl StructuralPartialEq for Type
Auto Trait Implementations§
impl Freeze for Type
impl RefUnwindSafe for Type
impl Send for Type
impl Sync for Type
impl Unpin for Type
impl UnwindSafe for Type
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more