mirror of
https://github.com/actix/actix-extras.git
synced 2024-11-30 18:34:36 +01:00
cleanup Binary type; more cors tests
This commit is contained in:
parent
fee54d1de0
commit
f7807e43d8
72
src/body.rs
72
src/body.rs
@ -31,13 +31,8 @@ pub enum Binary {
|
||||
Bytes(Bytes),
|
||||
/// Static slice
|
||||
Slice(&'static [u8]),
|
||||
/// Shared bytes body
|
||||
SharedBytes(Rc<Bytes>),
|
||||
/// Shared stirng body
|
||||
SharedString(Rc<String>),
|
||||
/// Shared bytes body
|
||||
#[doc(hidden)]
|
||||
ArcSharedBytes(Arc<Bytes>),
|
||||
/// Shared string body
|
||||
#[doc(hidden)]
|
||||
ArcSharedString(Arc<String>),
|
||||
@ -118,8 +113,6 @@ impl Binary {
|
||||
match *self {
|
||||
Binary::Bytes(ref bytes) => bytes.len(),
|
||||
Binary::Slice(slice) => slice.len(),
|
||||
Binary::SharedBytes(ref bytes) => bytes.len(),
|
||||
Binary::ArcSharedBytes(ref bytes) => bytes.len(),
|
||||
Binary::SharedString(ref s) => s.len(),
|
||||
Binary::ArcSharedString(ref s) => s.len(),
|
||||
}
|
||||
@ -131,6 +124,17 @@ impl Binary {
|
||||
}
|
||||
}
|
||||
|
||||
impl Into<Bytes> for Binary {
|
||||
fn into(self) -> Bytes {
|
||||
match self {
|
||||
Binary::Bytes(bytes) => bytes,
|
||||
Binary::Slice(slice) => Bytes::from(slice),
|
||||
Binary::SharedString(s) => Bytes::from(s.as_str()),
|
||||
Binary::ArcSharedString(s) => Bytes::from(s.as_str()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&'static str> for Binary {
|
||||
fn from(s: &'static str) -> Binary {
|
||||
Binary::Slice(s.as_ref())
|
||||
@ -173,30 +177,6 @@ impl From<BytesMut> for Binary {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Rc<Bytes>> for Binary {
|
||||
fn from(body: Rc<Bytes>) -> Binary {
|
||||
Binary::SharedBytes(body)
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> From<&'a Rc<Bytes>> for Binary {
|
||||
fn from(body: &'a Rc<Bytes>) -> Binary {
|
||||
Binary::SharedBytes(Rc::clone(body))
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Arc<Bytes>> for Binary {
|
||||
fn from(body: Arc<Bytes>) -> Binary {
|
||||
Binary::ArcSharedBytes(body)
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> From<&'a Arc<Bytes>> for Binary {
|
||||
fn from(body: &'a Arc<Bytes>) -> Binary {
|
||||
Binary::ArcSharedBytes(Arc::clone(body))
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Rc<String>> for Binary {
|
||||
fn from(body: Rc<String>) -> Binary {
|
||||
Binary::SharedString(body)
|
||||
@ -226,8 +206,6 @@ impl AsRef<[u8]> for Binary {
|
||||
match *self {
|
||||
Binary::Bytes(ref bytes) => bytes.as_ref(),
|
||||
Binary::Slice(slice) => slice,
|
||||
Binary::SharedBytes(ref bytes) => bytes.as_ref(),
|
||||
Binary::ArcSharedBytes(ref bytes) => bytes.as_ref(),
|
||||
Binary::SharedString(ref s) => s.as_bytes(),
|
||||
Binary::ArcSharedString(ref s) => s.as_bytes(),
|
||||
}
|
||||
@ -242,7 +220,6 @@ mod tests {
|
||||
fn test_body_is_streaming() {
|
||||
assert_eq!(Body::Empty.is_streaming(), false);
|
||||
assert_eq!(Body::Binary(Binary::from("")).is_streaming(), false);
|
||||
// assert_eq!(Body::Streaming.is_streaming(), true);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -277,15 +254,6 @@ mod tests {
|
||||
assert_eq!(Binary::from(Bytes::from("test")).as_ref(), "test".as_bytes());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_rc_bytes() {
|
||||
let b = Rc::new(Bytes::from("test"));
|
||||
assert_eq!(Binary::from(b.clone()).len(), 4);
|
||||
assert_eq!(Binary::from(b.clone()).as_ref(), "test".as_bytes());
|
||||
assert_eq!(Binary::from(&b).len(), 4);
|
||||
assert_eq!(Binary::from(&b).as_ref(), "test".as_bytes());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ref_string() {
|
||||
let b = Rc::new("test".to_owned());
|
||||
@ -302,15 +270,6 @@ mod tests {
|
||||
assert_eq!(Binary::from(&b).as_ref(), "test".as_bytes());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_arc_bytes() {
|
||||
let b = Arc::new(Bytes::from("test"));
|
||||
assert_eq!(Binary::from(b.clone()).len(), 4);
|
||||
assert_eq!(Binary::from(b.clone()).as_ref(), "test".as_bytes());
|
||||
assert_eq!(Binary::from(&b).len(), 4);
|
||||
assert_eq!(Binary::from(&b).as_ref(), "test".as_bytes());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_arc_string() {
|
||||
let b = Arc::new("test".to_owned());
|
||||
@ -335,4 +294,13 @@ mod tests {
|
||||
assert_eq!(Binary::from(b.clone()).len(), 4);
|
||||
assert_eq!(Binary::from(b).as_ref(), "test".as_bytes());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_binary_into() {
|
||||
let bytes = Bytes::from_static(b"test");
|
||||
let b: Bytes = Binary::from("test").into();
|
||||
assert_eq!(b, bytes);
|
||||
let b: Bytes = Binary::from(bytes.clone()).into();
|
||||
assert_eq!(b, bytes);
|
||||
}
|
||||
}
|
||||
|
@ -794,6 +794,7 @@ mod tests {
|
||||
fn test_response() {
|
||||
let cors = Cors::build()
|
||||
.send_wildcard()
|
||||
.disable_preflight()
|
||||
.max_age(3600)
|
||||
.allowed_methods(vec![Method::GET, Method::OPTIONS, Method::POST])
|
||||
.allowed_headers(vec![header::AUTHORIZATION, header::ACCEPT])
|
||||
@ -823,6 +824,7 @@ mod tests {
|
||||
resp.headers().get(header::VARY).unwrap().as_bytes());
|
||||
|
||||
let cors = Cors::build()
|
||||
.disable_vary_header()
|
||||
.allowed_origin("https://www.example.com")
|
||||
.finish().unwrap();
|
||||
let resp: HttpResponse = HTTPOk.into();
|
||||
|
Loading…
Reference in New Issue
Block a user