Struct TypeErasedExtension
pub struct TypeErasedExtension { /* private fields */ }Expand description
A TypeErasedExtension is a type erased item which can be stored in an Extensions
Internally the value is stored inside an Arc so this is cheap to clone
Implementations§
§impl TypeErasedExtension
impl TypeErasedExtension
pub fn new<T>(value: T) -> TypeErasedExtensionwhere
T: Extension,
pub fn new<T>(value: T) -> TypeErasedExtensionwhere
T: Extension,
Create a new TypeErasedExtension for T
If the value you are inserting is an Arc<T>, prefer using
Self::new_arc() to prevent the double indirection of storing
an Arc<Arc<T>>. This happens because internally we use a type erased
Arc to store the actual value.
pub fn new_arc<T>(value: Arc<T>) -> TypeErasedExtensionwhere
T: Extension,
pub fn new_arc<T>(value: Arc<T>) -> TypeErasedExtensionwhere
T: Extension,
Create a new TypeErasedExtension for Arc<T>
If the value you are inserting is not an Arc<T> prefer using
Self::new() instead.
pub fn cloned_downcast<T>(&self) -> Option<Arc<T>>where
T: Extension,
pub fn cloned_downcast<T>(&self) -> Option<Arc<T>>where
T: Extension,
Get a cloned Arc<T> of the internally stored type Arc<T>
This method will return None, if the internally stored
type S doesn’t match the requested type T
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: Extension,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: Extension,
Get a reference &T of the internally stored type T
This method will return None, if the internally stored
type S doesn’t match the requested type T
Trait Implementations§
§impl Clone for TypeErasedExtension
impl Clone for TypeErasedExtension
§fn clone(&self) -> TypeErasedExtension
fn clone(&self) -> TypeErasedExtension
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for TypeErasedExtension
impl !RefUnwindSafe for TypeErasedExtension
impl Send for TypeErasedExtension
impl Sync for TypeErasedExtension
impl Unpin for TypeErasedExtension
impl UnsafeUnpin for TypeErasedExtension
impl !UnwindSafe for TypeErasedExtension
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
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> ⓘ
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> ⓘ
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>
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>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more