pub struct WorkflowTaskCompletedMetadata {
pub core_used_flags: Vec<u32>,
pub lang_used_flags: Vec<u32>,
pub sdk_name: String,
pub sdk_version: String,
}Fields§
§core_used_flags: Vec<u32>Internal flags used by the core SDK. SDKs using flags must comply with the following behavior:
During replay:
- If a flag is not recognized (value is too high or not defined), it must fail the workflow task.
- If a flag is recognized, it is stored in a set of used flags for the run. Code checks for that flag during and after this WFT are allowed to assume that the flag is present.
- If a code check for a flag does not find the flag in the set of used flags, it must take the branch corresponding to the absence of that flag.
During non-replay execution of new WFTs:
- The SDK is free to use all flags it knows about. It must record any newly-used (IE: not previously recorded) flags when completing the WFT.
SDKs which are too old to even know about this field at all are considered to produce undefined behavior if they replay workflows which used this mechanism.
(– api-linter: core::0141::forbidden-types=disabled aip.dev/not-precedent: These really shouldn’t have negative values. –)
lang_used_flags: Vec<u32>Flags used by the SDK lang. No attempt is made to distinguish between different SDK languages
here as processing a workflow with a different language than the one which authored it is
already undefined behavior. See core_used_patches for more.
(– api-linter: core::0141::forbidden-types=disabled aip.dev/not-precedent: These really shouldn’t have negative values. –)
sdk_name: StringName of the SDK that processed the task. This is usually something like “temporal-go” and is usually the same as client-name gRPC header. This should only be set if its value changed since the last time recorded on the workflow (or be set on the first task).
(– api-linter: core::0122::name-suffix=disabled aip.dev/not-precedent: We’re ok with a name suffix here. –)
sdk_version: StringVersion of the SDK that processed the task. This is usually something like “1.20.0” and is usually the same as client-version gRPC header. This should only be set if its value changed since the last time recorded on the workflow (or be set on the first task).
Trait Implementations§
Source§impl Clone for WorkflowTaskCompletedMetadata
impl Clone for WorkflowTaskCompletedMetadata
Source§fn clone(&self) -> WorkflowTaskCompletedMetadata
fn clone(&self) -> WorkflowTaskCompletedMetadata
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Hash for WorkflowTaskCompletedMetadata
impl Hash for WorkflowTaskCompletedMetadata
Source§impl Message for WorkflowTaskCompletedMetadata
impl Message for WorkflowTaskCompletedMetadata
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl Name for WorkflowTaskCompletedMetadata
impl Name for WorkflowTaskCompletedMetadata
Source§const NAME: &'static str = "WorkflowTaskCompletedMetadata"
const NAME: &'static str = "WorkflowTaskCompletedMetadata"
Message.
This name is the same as it appears in the source .proto file, e.g. FooBar.Source§const PACKAGE: &'static str = "temporal.api.sdk.v1"
const PACKAGE: &'static str = "temporal.api.sdk.v1"
., e.g. google.protobuf.Source§fn full_name() -> String
fn full_name() -> String
Message.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.Source§impl PartialEq for WorkflowTaskCompletedMetadata
impl PartialEq for WorkflowTaskCompletedMetadata
Source§fn eq(&self, other: &WorkflowTaskCompletedMetadata) -> bool
fn eq(&self, other: &WorkflowTaskCompletedMetadata) -> bool
self and other values to be equal, and is used by ==.impl Eq for WorkflowTaskCompletedMetadata
impl StructuralPartialEq for WorkflowTaskCompletedMetadata
Auto Trait Implementations§
impl Freeze for WorkflowTaskCompletedMetadata
impl RefUnwindSafe for WorkflowTaskCompletedMetadata
impl Send for WorkflowTaskCompletedMetadata
impl Sync for WorkflowTaskCompletedMetadata
impl Unpin for WorkflowTaskCompletedMetadata
impl UnsafeUnpin for WorkflowTaskCompletedMetadata
impl UnwindSafe for WorkflowTaskCompletedMetadata
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
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