pub struct Extensions { /* private fields */ }Expand description
動的 Resource 管理(Type-Map パターン)
プラグインや拡張機能が独自の状態を登録可能です。
Worker は SwarmState.shared.extensions 経由でアクセスできます。
§Example
use swarm_engine_core::extensions::Extensions;
struct DatabaseConnection {
url: String,
pool_size: usize,
}
let mut extensions = Extensions::new();
extensions.insert(DatabaseConnection {
url: "postgres://localhost".to_string(),
pool_size: 10,
});
let db = extensions.get::<DatabaseConnection>().unwrap();
assert_eq!(db.pool_size, 10);Implementations§
Source§impl Extensions
impl Extensions
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Extensions
impl !RefUnwindSafe for Extensions
impl Send for Extensions
impl Sync for Extensions
impl Unpin for Extensions
impl !UnwindSafe for Extensions
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> 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 more