#[non_exhaustive]pub enum ScenarioAction {
Send {
to: EndpointRef,
body: Option<Value>,
headers: Option<BTreeMap<String, Value>>,
method: String,
},
Receive {
from: EndpointRef,
deadline: Duration,
extract: Option<BTreeMap<String, String>>,
},
Sleep {
duration: Duration,
},
Validate {
target: ScenarioTarget,
expectation: ValidateExpectation,
deadline: Option<Duration>,
},
}Expand description
One ordered scenario action (ADR-0069 section 11, adopted from
Citrus: send, receive with a mandatory deadline, sleep,
validate).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Send
Send a message to an endpoint.
Fields
§
to: EndpointRefTarget endpoint reference.
Receive
Receive a message from an endpoint before the deadline passes.
Fields
§
from: EndpointRefSource endpoint reference.
Sleep
Pause the scenario for the given duration.
Validate
Assert an expectation against a scenario target.
Fields
§
target: ScenarioTargetWhat to validate: the last message received on an endpoint, a scenario variable, or a partner’s recorded traffic.
§
expectation: ValidateExpectationMatcher expectation: the message grammar for lastReceived
and variable targets, the partner count grammar for
partner targets.
Trait Implementations§
Source§impl Clone for ScenarioAction
impl Clone for ScenarioAction
Source§fn clone(&self) -> ScenarioAction
fn clone(&self) -> ScenarioAction
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 moreAuto Trait Implementations§
impl Freeze for ScenarioAction
impl RefUnwindSafe for ScenarioAction
impl Send for ScenarioAction
impl Sync for ScenarioAction
impl Unpin for ScenarioAction
impl UnsafeUnpin for ScenarioAction
impl UnwindSafe for ScenarioAction
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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 moreSource§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>
Wrap the input message
T in a tonic::Request