refactor(header): remove GetType trait
Commit 7d122bd15f removed usage of
`header::sealed::GetType`, so the trait can safely be removed.
			
			
This commit is contained in:
		| @@ -83,7 +83,7 @@ use std::{mem, fmt}; | |||||||
| use unicase::Ascii; | use unicase::Ascii; | ||||||
|  |  | ||||||
| use self::internals::{Item, VecMap, Entry}; | use self::internals::{Item, VecMap, Entry}; | ||||||
| use self::sealed::{GetType, HeaderClone}; | use self::sealed::HeaderClone; | ||||||
|  |  | ||||||
| pub use self::shared::*; | pub use self::shared::*; | ||||||
| pub use self::common::*; | pub use self::common::*; | ||||||
| @@ -101,7 +101,7 @@ pub mod parsing; | |||||||
| /// | /// | ||||||
| /// This trait represents the construction and identification of headers, | /// This trait represents the construction and identification of headers, | ||||||
| /// and contains trait-object unsafe methods. | /// and contains trait-object unsafe methods. | ||||||
| pub trait Header: HeaderClone + GetType + Send + Sync { | pub trait Header: 'static + HeaderClone + Send + Sync { | ||||||
|     /// Returns the name of the header field this belongs to. |     /// Returns the name of the header field this belongs to. | ||||||
|     /// |     /// | ||||||
|     /// This will become an associated constant once available. |     /// This will become an associated constant once available. | ||||||
| @@ -132,19 +132,8 @@ pub trait Header: HeaderClone + GetType + Send + Sync { | |||||||
| } | } | ||||||
|  |  | ||||||
| mod sealed { | mod sealed { | ||||||
|     use std::any::{Any, TypeId}; |  | ||||||
|     use super::Header; |     use super::Header; | ||||||
|  |  | ||||||
|     #[doc(hidden)] |  | ||||||
|     pub trait GetType: Any { |  | ||||||
|         #[inline(always)] |  | ||||||
|         fn get_type(&self) -> TypeId { |  | ||||||
|             TypeId::of::<Self>() |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     impl<T: Any> GetType for T {} |  | ||||||
|  |  | ||||||
|     #[doc(hidden)] |     #[doc(hidden)] | ||||||
|     pub trait HeaderClone { |     pub trait HeaderClone { | ||||||
|         fn clone_box(&self) -> Box<Header + Send + Sync>; |         fn clone_box(&self) -> Box<Header + Send + Sync>; | ||||||
| @@ -156,23 +145,6 @@ mod sealed { | |||||||
|             Box::new(self.clone()) |             Box::new(self.clone()) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     #[test] |  | ||||||
|     fn test_get_type() { |  | ||||||
|         use ::header::{ContentLength, UserAgent}; |  | ||||||
|  |  | ||||||
|         let len = ContentLength(5); |  | ||||||
|         let agent = UserAgent::new("hyper"); |  | ||||||
|  |  | ||||||
|         assert_eq!(TypeId::of::<ContentLength>(), len.get_type()); |  | ||||||
|         assert_eq!(TypeId::of::<UserAgent>(), agent.get_type()); |  | ||||||
|  |  | ||||||
|         let len: Box<Header + Send + Sync> = Box::new(len); |  | ||||||
|         let agent: Box<Header + Send + Sync> = Box::new(agent); |  | ||||||
|  |  | ||||||
|         assert_eq!(TypeId::of::<ContentLength>(), (*len).get_type()); |  | ||||||
|         assert_eq!(TypeId::of::<UserAgent>(), (*agent).get_type()); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user