Struct Extensions
struct Extensions { ... }
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>(self: &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: &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>(self: &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>(self: &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>(self: &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>(self: &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>(self: &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(self: &mut Self)Clear the
Extensionsof all inserted extensions.Example
# use Extensions; let mut ext = new; ext.insert; ext.clear; assert!;fn is_empty(self: &Self) -> boolCheck whether the extension set is empty or not.
Example
# use Extensions; let mut ext = new; assert!; ext.insert; assert!;fn len(self: &Self) -> usizeGet the number of extensions available.
Example
# use Extensions; let mut ext = new; assert_eq!; ext.insert; assert_eq!;fn extend(self: &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!;
impl Clone for Extensions
fn clone(self: &Self) -> Extensions
impl Debug for Extensions
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Default for Extensions
fn default() -> Extensions
impl Freeze for Extensions
impl RefUnwindSafe for Extensions
impl Send for Extensions
impl Sync for Extensions
impl Unpin for Extensions
impl UnsafeUnpin for Extensions
impl UnwindSafe for Extensions
impl<T> Any for Extensions
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Extensions
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Extensions
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for Extensions
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for Extensions
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Extensions
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for Extensions
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Extensions
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Extensions
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>