Trait ink_storage_traits::Storable
source · pub trait Storable: Sized {
// Required methods
fn encode<T: Output + ?Sized>(&self, dest: &mut T);
fn decode<I: Input>(input: &mut I) -> Result<Self, Error>;
fn encoded_size(&self) -> usize;
}
Expand description
Trait for representing types which can be read and written to storage.
This trait is not the same as the [scale::Codec
]. Each type that implements
[scale::Codec
] are storable by default and transferable between contracts.
But not each storable type is transferable.
Required Methods§
sourcefn encode<T: Output + ?Sized>(&self, dest: &mut T)
fn encode<T: Output + ?Sized>(&self, dest: &mut T)
Convert self to a slice and append it to the destination.
sourcefn decode<I: Input>(input: &mut I) -> Result<Self, Error>
fn decode<I: Input>(input: &mut I) -> Result<Self, Error>
Attempt to deserialize the value from input.
sourcefn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
The exact number of bytes this type consumes in the encoded form.
Object Safety§
This trait is not object safe.