Struct EmulationContext
pub struct EmulationContext {
pub selected: Arc<SelectedProfile>,
pub seed: ProfileSeed,
pub connection_key: DrawKey,
pub request_key: DrawKey,
pub pins: VariantPins,
}Available on crate features
std and ua only.Expand description
Immutable selection and draw coordinates shared by connection and request layers.
Only Self::publish installs it, together with the pool partition that keeps ordinary
connections apart; Self::of reads it back.
fn install(extensions: &Extensions, context: EmulationContext) {
context.publish(extensions);
assert!(EmulationContext::of(extensions).is_some());
}Inserting it directly, without its partition, does not compile:
ⓘ
fn install(extensions: &Extensions, context: EmulationContext) {
extensions.insert(context);
}Fields§
§selected: Arc<SelectedProfile>§seed: ProfileSeed§connection_key: DrawKey§request_key: DrawKey§pins: VariantPinsImplementations§
§impl EmulationContext
impl EmulationContext
pub fn publish(self, extensions: &Extensions)
pub fn publish(self, extensions: &Extensions)
Publish the selection and its pool partition before looking up a connection. Existing application partitions are retained, including tenant boundaries.
pub fn of(extensions: &Extensions) -> Option<&EmulationContext>
pub fn of(extensions: &Extensions) -> Option<&EmulationContext>
The context Self::publish installed on extensions, if any.
Trait Implementations§
§impl Clone for EmulationContext
impl Clone for EmulationContext
§fn clone(&self) -> EmulationContext
fn clone(&self) -> EmulationContext
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 EmulationContext
impl RefUnwindSafe for EmulationContext
impl Send for EmulationContext
impl Sync for EmulationContext
impl Unpin for EmulationContext
impl UnsafeUnpin for EmulationContext
impl UnwindSafe for EmulationContext
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more