Struct sapio_contrib::contracts::derivatives::exploding::ExplodingOption
source · pub struct ExplodingOption<T: 'static> { /* private fields */ }
Expand description
Wraps a generic option opt with functionality to refund both parties on timeout.
Trait Implementations§
source§impl<T> Contract for ExplodingOption<T>
impl<T> Contract for ExplodingOption<T>
source§const THEN_FNS: &'static [fn() -> Option<ThenFuncAsFinishOrFunc<'static, Self, Self::StatefulArguments>>] = _
const THEN_FNS: &'static [fn() -> Option<ThenFuncAsFinishOrFunc<'static, Self, Self::StatefulArguments>>] = _
binds the list of ThenFunc
’s to this impl.
Any fn() which returns None is ignored (useful for type-level state machines)
§type StatefulArguments = ()
type StatefulArguments = ()
Due to type system limitations, all
FinishOrFuncs
for a Contract type must share a
parameter pack type. If stable, no default type allowed.source§const FINISH_OR_FUNCS: &'static [fn() -> Option<Box<dyn CallableAsFoF<Self, Self::StatefulArguments>>>] = _
const FINISH_OR_FUNCS: &'static [fn() -> Option<Box<dyn CallableAsFoF<Self, Self::StatefulArguments>>>] = _
binds the list of
FinishOrFunc
’s to this impl.
Any fn() which returns None is ignored (useful for type-level state machines)source§const FINISH_FNS: &'static [fn() -> Option<Guard<Self>>] = _
const FINISH_FNS: &'static [fn() -> Option<Guard<Self>>] = _
binds the list of
Gurard
’s to this impl as unlocking conditions.
Guard
s only need to be bound if it is desired that they are
sufficient to unlock funds, a Guard
should not be bound if it is
intended to be used with a ThenFunc
.
Any fn() which returns None is ignored (useful for type-level state machines)source§fn metadata(&self, _ctx: Context) -> Result<ObjectMetadata, CompilationError>
fn metadata(&self, _ctx: Context) -> Result<ObjectMetadata, CompilationError>
Generate metadata for this contract object
source§fn ensure_amount(&self, _ctx: Context) -> Result<Amount, CompilationError>
fn ensure_amount(&self, _ctx: Context) -> Result<Amount, CompilationError>
minimum balance to have in this coin
source§impl<T> Explodes for ExplodingOption<T>
impl<T> Explodes for ExplodingOption<T>
source§fn explodes<'a>(
) -> Option<ThenFuncAsFinishOrFunc<'a, Self, <Self as Contract>::StatefulArguments>>
fn explodes<'a>( ) -> Option<ThenFuncAsFinishOrFunc<'a, Self, <Self as Contract>::StatefulArguments>>
(missing docs fix)
source§fn then_explodes(&self, ctx: Context, _: ThenFuncTypeTag) -> TxTmplIt
fn then_explodes(&self, ctx: Context, _: ThenFuncTypeTag) -> TxTmplIt
(missing docs fix)
source§fn strikes<'a>(
) -> Option<ThenFuncAsFinishOrFunc<'a, Self, <Self as Contract>::StatefulArguments>>
fn strikes<'a>( ) -> Option<ThenFuncAsFinishOrFunc<'a, Self, <Self as Contract>::StatefulArguments>>
(missing docs fix)
source§fn then_strikes(&self, ctx: Context, _: ThenFuncTypeTag) -> TxTmplIt
fn then_strikes(&self, ctx: Context, _: ThenFuncTypeTag) -> TxTmplIt
(missing docs fix)
Auto Trait Implementations§
impl<T> RefUnwindSafe for ExplodingOption<T>where
T: RefUnwindSafe,
impl<T> Send for ExplodingOption<T>where
T: Send,
impl<T> Sync for ExplodingOption<T>where
T: Sync,
impl<T> Unpin for ExplodingOption<T>where
T: Unpin,
impl<T> UnwindSafe for ExplodingOption<T>where
T: 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