pub struct ReturnsHandledOrError<Env, Original, RawResult, NHList>{
pub nested_handlers: NHList,
/* private fields */
}
Expand description
Indicates that a Result
will be returned, either:
- with the handled result, according to the nested result handlers,
- or with an error in case of a failed transaction.
Can be used:
- in contracts, via
sync_call_fallible
; - in any tests or interactors.
Fields§
§nested_handlers: NHList
Implementations§
Source§impl<Env, Original, RawResult> ReturnsHandledOrError<Env, Original, RawResult, OriginalResultMarker<Original>>where
Env: TxEnv,
RawResult: ReturnsHandledOrErrorRawResult,
impl<Env, Original, RawResult> ReturnsHandledOrError<Env, Original, RawResult, OriginalResultMarker<Original>>where
Env: TxEnv,
RawResult: ReturnsHandledOrErrorRawResult,
pub fn new() -> ReturnsHandledOrError<Env, Original, RawResult, OriginalResultMarker<Original>>
Source§impl<Env, Original, RawResult, NHList> ReturnsHandledOrError<Env, Original, RawResult, NHList>
impl<Env, Original, RawResult, NHList> ReturnsHandledOrError<Env, Original, RawResult, NHList>
Sourcepub fn returns<RH>(
self,
item: RH,
) -> ReturnsHandledOrError<Env, Original, RawResult, <NHList as RHListAppendRet<Env, RH>>::RetOutput>where
RH: RHListItem<Env, <NHList as TxResultHandler<Env>>::OriginalResult>,
NHList: RHListAppendRet<Env, RH>,
pub fn returns<RH>(
self,
item: RH,
) -> ReturnsHandledOrError<Env, Original, RawResult, <NHList as RHListAppendRet<Env, RH>>::RetOutput>where
RH: RHListItem<Env, <NHList as TxResultHandler<Env>>::OriginalResult>,
NHList: RHListAppendRet<Env, RH>,
Specifies result handlers for success.
Trait Implementations§
Source§impl<Env, Original, RawResult> Default for ReturnsHandledOrError<Env, Original, RawResult, OriginalResultMarker<Original>>where
Env: TxEnv,
RawResult: ReturnsHandledOrErrorRawResult,
impl<Env, Original, RawResult> Default for ReturnsHandledOrError<Env, Original, RawResult, OriginalResultMarker<Original>>where
Env: TxEnv,
RawResult: ReturnsHandledOrErrorRawResult,
Source§fn default() -> ReturnsHandledOrError<Env, Original, RawResult, OriginalResultMarker<Original>>
fn default() -> ReturnsHandledOrError<Env, Original, RawResult, OriginalResultMarker<Original>>
Returns the “default value” for a type. Read more
Source§impl<Env, Original, RawResult, NHList> RHListItem<Env, Original> for ReturnsHandledOrError<Env, Original, RawResult, NHList>where
Env: TxEnv,
RawResult: ReturnsHandledOrErrorRawResult,
NHList: RHListExec<<RawResult as ReturnsHandledOrErrorRawResult>::SuccessResult, Env>,
<NHList as RHList<Env>>::ListReturns: NestedTupleFlatten,
impl<Env, Original, RawResult, NHList> RHListItem<Env, Original> for ReturnsHandledOrError<Env, Original, RawResult, NHList>where
Env: TxEnv,
RawResult: ReturnsHandledOrErrorRawResult,
NHList: RHListExec<<RawResult as ReturnsHandledOrErrorRawResult>::SuccessResult, Env>,
<NHList as RHList<Env>>::ListReturns: NestedTupleFlatten,
type Returns = Result<<<NHList as RHList<Env>>::ListReturns as NestedTupleFlatten>::Unpacked, <RawResult as ReturnsHandledOrErrorRawResult>::ErrorResult>
Source§impl<Env, Original, NHList> RHListItemExec<SyncCallRawResultOrError<<Env as TxEnv>::Api>, Env, Original> for ReturnsHandledOrError<Env, Original, SyncCallRawResultOrError<<Env as TxEnv>::Api>, NHList>where
Env: TxEnv,
NHList: RHListExec<SyncCallRawResult<<Env as TxEnv>::Api>, Env>,
<NHList as RHList<Env>>::ListReturns: NestedTupleFlatten,
impl<Env, Original, NHList> RHListItemExec<SyncCallRawResultOrError<<Env as TxEnv>::Api>, Env, Original> for ReturnsHandledOrError<Env, Original, SyncCallRawResultOrError<<Env as TxEnv>::Api>, NHList>where
Env: TxEnv,
NHList: RHListExec<SyncCallRawResult<<Env as TxEnv>::Api>, Env>,
<NHList as RHList<Env>>::ListReturns: NestedTupleFlatten,
Source§fn item_process_result(
self,
raw_result: &SyncCallRawResultOrError<<Env as TxEnv>::Api>,
) -> <ReturnsHandledOrError<Env, Original, SyncCallRawResultOrError<<Env as TxEnv>::Api>, NHList> as RHListItem<Env, Original>>::Returns
fn item_process_result( self, raw_result: &SyncCallRawResultOrError<<Env as TxEnv>::Api>, ) -> <ReturnsHandledOrError<Env, Original, SyncCallRawResultOrError<<Env as TxEnv>::Api>, NHList> as RHListItem<Env, Original>>::Returns
The main functionality of a result handler, it either does some computation internally
(e.g. execution of a lambda function), or produces a result, or both.
Source§impl<Env, Original, NHList> RHListItemExec<TxResponse, Env, Original> for ReturnsHandledOrError<Env, Original, TxResponse, NHList>where
Env: TxEnv<RHExpect = TxExpect>,
NHList: RHListExec<TxResponse, Env>,
<NHList as RHList<Env>>::ListReturns: NestedTupleFlatten,
impl<Env, Original, NHList> RHListItemExec<TxResponse, Env, Original> for ReturnsHandledOrError<Env, Original, TxResponse, NHList>where
Env: TxEnv<RHExpect = TxExpect>,
NHList: RHListExec<TxResponse, Env>,
<NHList as RHList<Env>>::ListReturns: NestedTupleFlatten,
Source§fn item_preprocessing(&self, prev: TxExpect) -> TxExpect
fn item_preprocessing(&self, prev: TxExpect) -> TxExpect
Part of the execution pre-processing, each result handler needs to produce an “expect” field,
as defined in the environment. Read more
Source§fn item_process_result(
self,
raw_result: &TxResponse,
) -> <ReturnsHandledOrError<Env, Original, TxResponse, NHList> as RHListItem<Env, Original>>::Returns
fn item_process_result( self, raw_result: &TxResponse, ) -> <ReturnsHandledOrError<Env, Original, TxResponse, NHList> as RHListItem<Env, Original>>::Returns
The main functionality of a result handler, it either does some computation internally
(e.g. execution of a lambda function), or produces a result, or both.
Auto Trait Implementations§
impl<Env, Original, RawResult, NHList> Freeze for ReturnsHandledOrError<Env, Original, RawResult, NHList>where
NHList: Freeze,
impl<Env, Original, RawResult, NHList> RefUnwindSafe for ReturnsHandledOrError<Env, Original, RawResult, NHList>
impl<Env, Original, RawResult, NHList> Send for ReturnsHandledOrError<Env, Original, RawResult, NHList>
impl<Env, Original, RawResult, NHList> Sync for ReturnsHandledOrError<Env, Original, RawResult, NHList>
impl<Env, Original, RawResult, NHList> Unpin for ReturnsHandledOrError<Env, Original, RawResult, NHList>
impl<Env, Original, RawResult, NHList> UnwindSafe for ReturnsHandledOrError<Env, Original, RawResult, NHList>
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> InterpretableFrom<T> for T
impl<T> InterpretableFrom<T> for T
fn interpret_from(from: T, _context: &InterpreterContext) -> T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more