pub struct PluginContext { /* private fields */ }Implementations§
Source§impl PluginContext
impl PluginContext
Sourcepub fn contains<T: Any + Send + Sync>(&self) -> bool
pub fn contains<T: Any + Send + Sync>(&self) -> bool
Check if the context contains an entry of type T.
This can be used by plugins to check for the presence of other plugins’ context entries before trying to access them.
Example:
struct ContextData {
pub greetings: String
}
if payload.context.contains::<ContextData>() {
/// safe to access ContextData entry
}Sourcepub fn insert<T: Any + Send + Sync>(&self, value: T) -> Option<Box<T>>
pub fn insert<T: Any + Send + Sync>(&self, value: T) -> Option<Box<T>>
Insert a value of type T into the context. If an entry of that type already exists, it will be replaced and the old value will be returned.
Example:
struct ContextData {
pub greetings: String
}
let context_data = ContextData {
greetings: "Hello from context!".to_string()
};
payload.context.insert(context_data);
Sourcepub fn get_ref<'a, T: Any + Send + Sync>(
&'a self,
) -> Option<PluginContextRefEntry<'a, T>>
pub fn get_ref<'a, T: Any + Send + Sync>( &'a self, ) -> Option<PluginContextRefEntry<'a, T>>
Get an immutable reference to the entry of type T in the context, if it exists. If no entry of that type exists, None is returned.
Example:
struct ContextData {
pub greetings: String
}
let context_data = ContextData {
greetings: "Hello from context!".to_string()
};
payload.context.insert(context_data);
let context_data_entry = payload.context.get_ref::<ContextData>();
if let Some(ref context_data) = context_data_entry {
println!("{}", context_data.greetings); // prints "Hello from context!"
}Sourcepub fn get_mut<'a, T: Any + Send + Sync>(
&'a self,
) -> Option<PluginContextMutEntry<'a, T>>
pub fn get_mut<'a, T: Any + Send + Sync>( &'a self, ) -> Option<PluginContextMutEntry<'a, T>>
Get a mutable reference to the entry of type T in the context, if it exists. If no entry of that type exists, None is returned.
Example:
struct ContextData {
pub greetings: String
}
let context_data = ContextData {
greetings: "Hello from context!".to_string()
};
payload.context.insert(context_data);
if let Some(mut context_data_entry) = payload.context.get_mut::<ContextData>() {
context_data_entry.greetings = "Hello from mutable reference!".to_string();
}Trait Implementations§
Source§impl Default for PluginContext
impl Default for PluginContext
Source§fn default() -> PluginContext
fn default() -> PluginContext
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for PluginContext
impl !RefUnwindSafe for PluginContext
impl Send for PluginContext
impl Sync for PluginContext
impl Unpin for PluginContext
impl UnsafeUnpin for PluginContext
impl !UnwindSafe for PluginContext
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
Mutably borrows from an owned value. Read more
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::RequestSource§impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
type Error = <Target as OctetsFrom<Source>>::Error
Source§fn try_octets_into(
self,
) -> Result<Target, <Source as OctetsInto<Target>>::Error>
fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>
Performs the conversion.
Source§fn octets_into(self) -> Target
fn octets_into(self) -> Target
Performs an infallible conversion.