pub struct TimelockMapper<SA, T, A = CurrentStorage>{ /* private fields */ }
Implementations§
Source§impl<SA, T> TimelockMapper<SA, T>
impl<SA, T> TimelockMapper<SA, T>
Sourcepub fn set<BT>(&self, new_current_value: BT)where
BT: Borrow<T>,
pub fn set<BT>(&self, new_current_value: BT)where
BT: Borrow<T>,
Sets the current value
without taking into account the timelock component.
Meant to be used in constructors.
Sourcepub fn commit(&self) -> bool
pub fn commit(&self) -> bool
Updates current value entry with future value if unlock timestamp has passed.
Sourcepub fn set_unlock_timestamp<BT>(&self, unlock_timestamp: u64, future_value: BT)where
BT: Borrow<T>,
pub fn set_unlock_timestamp<BT>(&self, unlock_timestamp: u64, future_value: BT)where
BT: Borrow<T>,
Sets a value and an unlock timestamp for the value. Setup needs to be commited after the unlock timestamp has passed. Unlock timestamp represents the moment in time when the future value can be updated as current value.
Source§impl<SA, T, A> TimelockMapper<SA, T, A>
impl<SA, T, A> TimelockMapper<SA, T, A>
Sourcepub fn get_unlock_timestamp(&self) -> u64
pub fn get_unlock_timestamp(&self) -> u64
Retrieves the unlock timestamp from storage.
Sourcepub fn get_future_value(&self) -> T
pub fn get_future_value(&self) -> T
Retrieves the future value from storage.
Trait Implementations§
Source§impl<SA, T> StorageMapper<SA> for TimelockMapper<SA, T>
impl<SA, T> StorageMapper<SA> for TimelockMapper<SA, T>
Source§fn new(base_key: StorageKey<SA>) -> Self
fn new(base_key: StorageKey<SA>) -> Self
Will be called automatically by the
#[storage_mapper]
annotation generated code.Source§impl<SA, T> StorageMapperFromAddress<SA> for TimelockMapper<SA, T, ManagedAddress<SA>>
impl<SA, T> StorageMapperFromAddress<SA> for TimelockMapper<SA, T, ManagedAddress<SA>>
Source§fn new_from_address(
address: ManagedAddress<SA>,
base_key: StorageKey<SA>,
) -> Self
fn new_from_address( address: ManagedAddress<SA>, base_key: StorageKey<SA>, ) -> Self
Will be called automatically by the
#[storage_mapper_from_address]
annotation generated code.Source§impl<SA, T> TopEncodeMulti for TimelockMapper<SA, T>
impl<SA, T> TopEncodeMulti for TimelockMapper<SA, T>
Source§fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
Version of
top_encode
that can handle errors as soon as they occur.
For instance in can exit immediately and make sure that if it returns, it is a success.
By not deferring error handling, this can lead to somewhat smaller bytecode.Source§fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
Attempt to serialize the value to ouput.
Source§impl<SA, T> TypeAbi for TimelockMapper<SA, T>
impl<SA, T> TypeAbi for TimelockMapper<SA, T>
type Unmanaged = <T as TypeAbi>::Unmanaged
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
Source§fn provide_type_descriptions<TDC: TypeDescriptionContainer>(
accumulator: &mut TDC,
)
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
A type can provide more than its own name.
For instance, a struct can also provide the descriptions of the type of its fields.
TypeAbi doesn’t care for the exact accumulator type,
which is abstracted by the TypeDescriptionContainer trait.
fn type_names() -> TypeNames
impl<SA, T> TypeAbiFrom<TimelockMapper<SA, T>> for PlaceholderOutput
impl<SA, T, R> TypeAbiFrom<TimelockMapper<SA, T>> for SingleValue<R>
impl<SA, T> TypeAbiFrom<TimelockMapper<SA, T>> for TimelockMapper<SA, T>
Auto Trait Implementations§
impl<SA, T, A> Freeze for TimelockMapper<SA, T, A>
impl<SA, T, A> RefUnwindSafe for TimelockMapper<SA, T, A>where
A: RefUnwindSafe,
SA: RefUnwindSafe,
T: RefUnwindSafe,
<SA as HandleTypeInfo>::ManagedBufferHandle: RefUnwindSafe,
impl<SA, T, A> Send for TimelockMapper<SA, T, A>
impl<SA, T, A> Sync for TimelockMapper<SA, T, A>
impl<SA, T, A> Unpin for TimelockMapper<SA, T, A>
impl<SA, T, A> UnwindSafe for TimelockMapper<SA, T, A>where
A: UnwindSafe,
SA: UnwindSafe,
T: UnwindSafe,
<SA as HandleTypeInfo>::ManagedBufferHandle: UnwindSafe,
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