pub enum ProtocolHook {
SignAllState(SignAllStates),
Protocol(NashProtocolRequest),
}Expand description
Captures and protocol request or pipeline that can be executed in a run_before
or run_after hook for the NashProtocol and NashProtocolPipeline traits.
Variants§
SignAllState(SignAllStates)
Protocol(NashProtocolRequest)
Trait Implementations§
Source§impl Clone for ProtocolHook
impl Clone for ProtocolHook
Source§fn clone(&self) -> ProtocolHook
fn clone(&self) -> ProtocolHook
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ProtocolHook
impl Debug for ProtocolHook
Source§impl NashProtocolPipeline for ProtocolHook
Implement NashProtocolPipeline for ProtocolHook so that hooks can be run as typical pipelines
impl NashProtocolPipeline for ProtocolHook
Implement NashProtocolPipeline for ProtocolHook so that hooks can be run as typical pipelines
Source§type PipelineState = ProtocolHookState
type PipelineState = ProtocolHookState
State managed by pipeline and used to hold intermediate results and allow
the implementer to decide whether the pipeline is over
Source§type ActionType = NashProtocolRequest
type ActionType = NashProtocolRequest
Wrapper type for all actions this pipeline can take
Source§fn acquire_permit<'life0, 'async_trait>(
&'life0 self,
state: Arc<RwLock<State>>,
) -> Pin<Box<dyn Future<Output = Option<OwnedSemaphorePermit>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn acquire_permit<'life0, 'async_trait>(
&'life0 self,
state: Arc<RwLock<State>>,
) -> Pin<Box<dyn Future<Output = Option<OwnedSemaphorePermit>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
If you want to limit the amount of concurrency of a pipeline return a Semaphore here
Source§fn init_state<'life0, 'async_trait>(
&'life0 self,
state: Arc<RwLock<State>>,
) -> Pin<Box<dyn Future<Output = Self::PipelineState> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn init_state<'life0, 'async_trait>(
&'life0 self,
state: Arc<RwLock<State>>,
) -> Pin<Box<dyn Future<Output = Self::PipelineState> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create initial state for the pipeline
Source§fn next_step<'life0, 'life1, 'async_trait>(
&'life0 self,
pipeline_state: &'life1 Self::PipelineState,
client_state: Arc<RwLock<State>>,
) -> Pin<Box<dyn Future<Output = Result<Option<Self::ActionType>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn next_step<'life0, 'life1, 'async_trait>(
&'life0 self,
pipeline_state: &'life1 Self::PipelineState,
client_state: Arc<RwLock<State>>,
) -> Pin<Box<dyn Future<Output = Result<Option<Self::ActionType>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Give next action to take or return
None if pipeline is finished. &State needs
to be mutable as client may modify itself when producing the next step (e.g., removing
and r value generate a signature)Source§fn process_step<'life0, 'life1, 'async_trait>(
&'life0 self,
result: <NashProtocolRequest as NashProtocol>::Response,
pipeline_state: &'life1 mut Self::PipelineState,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn process_step<'life0, 'life1, 'async_trait>(
&'life0 self,
result: <NashProtocolRequest as NashProtocol>::Response,
pipeline_state: &'life1 mut Self::PipelineState,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Process the results of a pipeline step
Source§fn output(
&self,
pipeline_state: Self::PipelineState,
) -> Result<ResponseOrError<NashProtocolResponse>>
fn output( &self, pipeline_state: Self::PipelineState, ) -> Result<ResponseOrError<NashProtocolResponse>>
Get results from pipeline or
None if the pipeline is not finishedfn run_before<'life0, 'async_trait>(
&'life0 self,
state: Arc<RwLock<State>>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ProtocolHook>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn run_after<'life0, 'async_trait>(
&'life0 self,
state: Arc<RwLock<State>>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ProtocolHook>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl Freeze for ProtocolHook
impl !RefUnwindSafe for ProtocolHook
impl Send for ProtocolHook
impl Sync for ProtocolHook
impl Unpin for ProtocolHook
impl UnsafeUnpin for ProtocolHook
impl !UnwindSafe for ProtocolHook
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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