Skip to main content

WorkflowHandle

Struct WorkflowHandle 

Source
pub struct WorkflowHandle<ClientT, W> { /* private fields */ }
Expand description

A workflow handle which can refer to a specific workflow run, or a chain of workflow runs with the same workflow id.

Implementations§

Source§

impl<CT, W> WorkflowHandle<CT, W>

Source

pub fn run_id(&self) -> Option<&str>

Return the run id of the Workflow Execution pointed at by this handle, if there is one.

Source§

impl<CT, W> WorkflowHandle<CT, W>

Source

pub fn new(client: CT, info: WorkflowExecutionInfo) -> Self

Create a workflow handle from a client and identifying information.

Source

pub fn info(&self) -> &WorkflowExecutionInfo

Get the workflow execution info

Source

pub fn client(&self) -> &CT

Get the client attached to this handle

Source

pub async fn get_result( &self, opts: WorkflowGetResultOptions, ) -> Result<W::Output, WorkflowGetResultError>
where CT: WorkflowService + NamespacedClient + Clone + 'static,

Await the result of the workflow execution

Source

pub async fn signal<S>( &self, signal: S, input: S::Input, opts: WorkflowSignalOptions, ) -> Result<(), WorkflowInteractionError>
where CT: WorkflowService + NamespacedClient + Clone, S: SignalDefinition<Workflow = W::Run>, S::Input: Send,

Send a signal to the workflow

Source

pub async fn query<Q>( &self, query: Q, input: Q::Input, opts: WorkflowQueryOptions, ) -> Result<Q::Output, WorkflowQueryError>
where CT: WorkflowService + NamespacedClient + Clone, Q: QueryDefinition<Workflow = W::Run>, Q::Input: Send,

Query the workflow

Source

pub async fn execute_update<U>( &self, update: U, input: U::Input, options: WorkflowExecuteUpdateOptions, ) -> Result<U::Output, WorkflowUpdateError>
where CT: WorkflowService + NamespacedClient + Clone, U: UpdateDefinition<Workflow = W::Run>, U::Input: Send, U::Output: 'static,

Send an update to the workflow and wait for it to complete, returning the result.

Source

pub async fn start_update<U>( &self, update: U, input: U::Input, options: WorkflowStartUpdateOptions, ) -> Result<WorkflowUpdateHandle<CT, U::Output>, WorkflowUpdateError>
where CT: WorkflowService + NamespacedClient + Clone, U: UpdateDefinition<Workflow = W::Run>, U::Input: Send,

Start an update and return a handle without waiting for completion. Use execute_update() if you want to wait for the result immediately.

Source

pub fn get_update_handle<U>( &self, update: U, update_id: impl Into<String>, ) -> WorkflowUpdateHandle<CT, U::Output>
where U: UpdateDefinition<Workflow = W::Run>,

Get a handle to an existing update.

The update definition determines the result type. The returned handle uses this workflow handle’s workflow and run IDs and does not validate the update ID until get_result is called.

Source

pub async fn cancel( &self, opts: WorkflowCancelOptions, ) -> Result<(), WorkflowInteractionError>
where CT: NamespacedClient,

Request cancellation of this workflow.

Source

pub async fn terminate( &self, opts: WorkflowTerminateOptions, ) -> Result<(), WorkflowInteractionError>
where CT: NamespacedClient,

Terminate this workflow.

Source

pub async fn describe( &self, opts: WorkflowDescribeOptions, ) -> Result<WorkflowExecutionDescription, WorkflowInteractionError>
where CT: NamespacedClient,

Get workflow execution description/metadata.

Source

pub fn fetch_history( &self, opts: WorkflowFetchHistoryOptions, ) -> WorkflowHistory
where CT: NamespacedClient + 'static,

Fetch workflow execution history as a lazy stream.

No request is sent until the returned stream is polled.

Trait Implementations§

Source§

impl<ClientT: Clone, W: Clone> Clone for WorkflowHandle<ClientT, W>

Source§

fn clone(&self) -> WorkflowHandle<ClientT, W>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<ClientT, W> Freeze for WorkflowHandle<ClientT, W>
where ClientT: Freeze, PhantomData<W>: Freeze,

§

impl<ClientT, W> RefUnwindSafe for WorkflowHandle<ClientT, W>

§

impl<ClientT, W> Send for WorkflowHandle<ClientT, W>
where ClientT: Send, PhantomData<W>: Send,

§

impl<ClientT, W> Sync for WorkflowHandle<ClientT, W>
where ClientT: Sync, PhantomData<W>: Sync,

§

impl<ClientT, W> Unpin for WorkflowHandle<ClientT, W>
where ClientT: Unpin, PhantomData<W>: Unpin,

§

impl<ClientT, W> UnsafeUnpin for WorkflowHandle<ClientT, W>
where ClientT: UnsafeUnpin, PhantomData<W>: UnsafeUnpin,

§

impl<ClientT, W> UnwindSafe for WorkflowHandle<ClientT, W>
where ClientT: UnwindSafe, PhantomData<W>: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more