pub struct SessionKey {
pub workflow_id: WorkflowId,
pub run_id: RunId,
pub activity_id: ActivityId,
pub attempt: u32,
}Expand description
The (workflow, run, activity, attempt) key one running agent session is
addressed by — the exact identity the design keys the whole intervention path
on, and the mirror of the server-side AttemptKey.
The run is part of the key for the same reason it is part of the transcript stream key: a continue-as-new chain reuses one workflow id while ordinals and attempts restart per generation, so a run-blind key would let a command aimed at generation two reach generation one’s live session. Delivering a steer to the wrong generation is a control-plane fault, not a cosmetic one.
Fields§
§workflow_id: WorkflowIdThe workflow the target activity belongs to.
run_id: RunIdThe concrete run of that workflow the target attempt belongs to.
activity_id: ActivityIdThe target activity within the workflow.
attempt: u32The target attempt. A command to any other attempt is a stale-target no-op.
Implementations§
Source§impl SessionKey
impl SessionKey
Sourcepub const fn new(
workflow_id: WorkflowId,
run_id: RunId,
activity_id: ActivityId,
attempt: u32,
) -> Self
pub const fn new( workflow_id: WorkflowId, run_id: RunId, activity_id: ActivityId, attempt: u32, ) -> Self
Build a session key from its four components.
Sourcepub fn of_command(command: &InterventionCommand) -> Self
pub fn of_command(command: &InterventionCommand) -> Self
The session key naming the target of a routed command.
Trait Implementations§
Source§impl Clone for SessionKey
impl Clone for SessionKey
Source§fn clone(&self) -> SessionKey
fn clone(&self) -> SessionKey
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SessionKey
impl Debug for SessionKey
impl Eq for SessionKey
Source§impl Hash for SessionKey
impl Hash for SessionKey
Source§impl PartialEq for SessionKey
impl PartialEq for SessionKey
impl StructuralPartialEq for SessionKey
Auto Trait Implementations§
impl Freeze for SessionKey
impl RefUnwindSafe for SessionKey
impl Send for SessionKey
impl Sync for SessionKey
impl Unpin for SessionKey
impl UnsafeUnpin for SessionKey
impl UnwindSafe for SessionKey
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request