Struct Extensions
pub struct Extensions { /* private fields */ }
A type map of protocol extensions.
Extensions can be used by Request and Response to store
extra data derived from the underlying protocol.
Implementations
impl Extensions
fn new() -> ExtensionsCreate an empty
Extensions.fn insert<T: Clone + Send + Sync + 'static>(&mut self, val: T) -> Option<T>Insert a type into this
Extensions.If a extension of this type already existed, it will be returned and replaced with the new one.
Example
# use Extensions; let mut ext = new; assert!; assert!; assert_eq!;fn get<T: Send + Sync + 'static>(&self) -> Option<&T>Get a reference to a type previously inserted on this
Extensions.Example
# use Extensions; let mut ext = new; assert!; ext.insert; assert_eq!;fn get_mut<T: Send + Sync + 'static>(&mut self) -> Option<&mut T>Get a mutable reference to a type previously inserted on this
Extensions.Example
# use Extensions; let mut ext = new; ext.insert; ext..unwrap.push_str; assert_eq!;fn get_or_insert<T: Clone + Send + Sync + 'static>(&mut self, value: T) -> &mut TGet a mutable reference to a type, inserting
valueif not already present on thisExtensions.Example
# use Extensions; let mut ext = new; *ext.get_or_insert += 2; assert_eq!;fn get_or_insert_with<T: Clone + Send + Sync + 'static, F: FnOnce() -> T>(&mut self, f: F) -> &mut TGet a mutable reference to a type, inserting the value created by
fif not already present on thisExtensions.Example
# use Extensions; let mut ext = new; *ext.get_or_insert_with += 2; assert_eq!;fn get_or_insert_default<T: Default + Clone + Send + Sync + 'static>(&mut self) -> &mut TGet a mutable reference to a type, inserting the type's default value if not already present on this
Extensions.Example
# use Extensions; let mut ext = new; *ext. += 2; assert_eq!;fn remove<T: Send + Sync + 'static>(&mut self) -> Option<T>Remove a type from this
Extensions.If a extension of this type existed, it will be returned.
Example
# use Extensions; let mut ext = new; ext.insert; assert_eq!; assert!;fn clear(&mut self)Clear the
Extensionsof all inserted extensions.Example
# use Extensions; let mut ext = new; ext.insert; ext.clear; assert!;fn is_empty(&self) -> boolCheck whether the extension set is empty or not.
Example
# use Extensions; let mut ext = new; assert!; ext.insert; assert!;fn len(&self) -> usizeGet the number of extensions available.
Example
# use Extensions; let mut ext = new; assert_eq!; ext.insert; assert_eq!;fn extend(&mut self, other: Self)Extends
selfwith anotherExtensions.If an instance of a specific type exists in both, the one in
selfis overwritten with the one fromother.Example
# use Extensions; let mut ext_a = new; ext_a.insert; ext_a.insert; let mut ext_b = new; ext_b.insert; ext_b.insert; ext_a.extend; assert_eq!; assert_eq!; assert_eq!; assert_eq!;
Trait Implementations
impl Clone for Extensions
fn clone(&self) -> Extensions
impl Debug for Extensions
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Default for Extensions
fn default() -> Extensions
Auto Trait Implementations
impl !RefUnwindSafe for Extensions
impl !UnwindSafe for Extensions
impl Freeze for Extensions
impl Send for Extensions
impl Sync for Extensions
impl Unpin for Extensions
impl UnsafeUnpin for Extensions
Blanket Implementations
impl<T> Any for Extensions
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Extensions
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Extensions
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Extensions
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for Extensions
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Extensions
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for Extensions
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Extensions
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Extensions
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>