Struct http::Extensions [−][src]
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
[src][−]
pub fn new() -> Extensions
[src][−]
Create an empty Extensions
.
pub fn insert<T: Send + Sync + 'static>(&mut self, val: T) -> Option<T>
[src][−]
Insert a type into this Extensions
.
If a extension of this type already existed, it will be returned.
Example
let mut ext = Extensions::new(); assert!(ext.insert(5i32).is_none()); assert!(ext.insert(4u8).is_none()); assert_eq!(ext.insert(9i32), Some(5i32));
pub fn get<T: Send + Sync + 'static>(&self) -> Option<&T>
[src][−]
Get a reference to a type previously inserted on this Extensions
.
Example
let mut ext = Extensions::new(); assert!(ext.get::<i32>().is_none()); ext.insert(5i32); assert_eq!(ext.get::<i32>(), Some(&5i32));
pub fn get_mut<T: Send + Sync + 'static>(&mut self) -> Option<&mut T>
[src][−]
Get a mutable reference to a type previously inserted on this Extensions
.
Example
let mut ext = Extensions::new(); ext.insert(String::from("Hello")); ext.get_mut::<String>().unwrap().push_str(" World"); assert_eq!(ext.get::<String>().unwrap(), "Hello World");
pub fn remove<T: Send + Sync + 'static>(&mut self) -> Option<T>
[src][−]
Remove a type from this Extensions
.
If a extension of this type existed, it will be returned.
Example
let mut ext = Extensions::new(); ext.insert(5i32); assert_eq!(ext.remove::<i32>(), Some(5i32)); assert!(ext.get::<i32>().is_none());
pub fn clear(&mut self)
[src][−]
Clear the Extensions
of all inserted extensions.
Example
let mut ext = Extensions::new(); ext.insert(5i32); ext.clear(); assert!(ext.get::<i32>().is_none());
Trait Implementations
impl Debug for Extensions
[src][+]
impl Default for Extensions
[src][+]
Auto Trait Implementations
impl !RefUnwindSafe for Extensions
impl Send for Extensions
impl Sync for Extensions
impl Unpin for Extensions
impl !UnwindSafe for Extensions
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,