mirror of https://github.com/fafhrd91/actix-web
remove unnecessary box cast
This commit is contained in:
parent
9faebf313d
commit
cacb725022
|
@ -35,26 +35,23 @@ impl Extensions {
|
||||||
pub fn get<T: 'static>(&self) -> Option<&T> {
|
pub fn get<T: 'static>(&self) -> Option<&T> {
|
||||||
self.map
|
self.map
|
||||||
.get(&TypeId::of::<T>())
|
.get(&TypeId::of::<T>())
|
||||||
.and_then(|boxed| (&**boxed as &(dyn Any + 'static)).downcast_ref())
|
.and_then(|boxed| boxed.downcast_ref())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get a mutable reference to a type previously inserted on this `Extensions`.
|
/// Get a mutable reference to a type previously inserted on this `Extensions`.
|
||||||
pub fn get_mut<T: 'static>(&mut self) -> Option<&mut T> {
|
pub fn get_mut<T: 'static>(&mut self) -> Option<&mut T> {
|
||||||
self.map
|
self.map
|
||||||
.get_mut(&TypeId::of::<T>())
|
.get_mut(&TypeId::of::<T>())
|
||||||
.and_then(|boxed| (&mut **boxed as &mut (dyn Any + 'static)).downcast_mut())
|
.and_then(|boxed| boxed.downcast_mut())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Remove a type from this `Extensions`.
|
/// Remove a type from this `Extensions`.
|
||||||
///
|
///
|
||||||
/// If a extension of this type existed, it will be returned.
|
/// If a extension of this type existed, it will be returned.
|
||||||
pub fn remove<T: 'static>(&mut self) -> Option<T> {
|
pub fn remove<T: 'static>(&mut self) -> Option<T> {
|
||||||
self.map.remove(&TypeId::of::<T>()).and_then(|boxed| {
|
self.map
|
||||||
(boxed as Box<dyn Any + 'static>)
|
.remove(&TypeId::of::<T>())
|
||||||
.downcast()
|
.and_then(|boxed| boxed.downcast().ok().map(|boxed| *boxed))
|
||||||
.ok()
|
|
||||||
.map(|boxed| *boxed)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Clear the `Extensions` of all inserted extensions.
|
/// Clear the `Extensions` of all inserted extensions.
|
||||||
|
|
Loading…
Reference in New Issue