mirror of
https://github.com/fafhrd91/actix-web
synced 2024-11-24 00:21:08 +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),
|
Bytes(Bytes),
|
||||||
/// Static slice
|
/// Static slice
|
||||||
Slice(&'static [u8]),
|
Slice(&'static [u8]),
|
||||||
/// Shared bytes body
|
|
||||||
SharedBytes(Rc<Bytes>),
|
|
||||||
/// Shared stirng body
|
/// Shared stirng body
|
||||||
SharedString(Rc<String>),
|
SharedString(Rc<String>),
|
||||||
/// Shared bytes body
|
|
||||||
#[doc(hidden)]
|
|
||||||
ArcSharedBytes(Arc<Bytes>),
|
|
||||||
/// Shared string body
|
/// Shared string body
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
ArcSharedString(Arc<String>),
|
ArcSharedString(Arc<String>),
|
||||||
@ -118,8 +113,6 @@ impl Binary {
|
|||||||
match *self {
|
match *self {
|
||||||
Binary::Bytes(ref bytes) => bytes.len(),
|
Binary::Bytes(ref bytes) => bytes.len(),
|
||||||
Binary::Slice(slice) => slice.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::SharedString(ref s) => s.len(),
|
||||||
Binary::ArcSharedString(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 {
|
impl From<&'static str> for Binary {
|
||||||
fn from(s: &'static str) -> Binary {
|
fn from(s: &'static str) -> Binary {
|
||||||
Binary::Slice(s.as_ref())
|
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 {
|
impl From<Rc<String>> for Binary {
|
||||||
fn from(body: Rc<String>) -> Binary {
|
fn from(body: Rc<String>) -> Binary {
|
||||||
Binary::SharedString(body)
|
Binary::SharedString(body)
|
||||||
@ -226,8 +206,6 @@ impl AsRef<[u8]> for Binary {
|
|||||||
match *self {
|
match *self {
|
||||||
Binary::Bytes(ref bytes) => bytes.as_ref(),
|
Binary::Bytes(ref bytes) => bytes.as_ref(),
|
||||||
Binary::Slice(slice) => slice,
|
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::SharedString(ref s) => s.as_bytes(),
|
||||||
Binary::ArcSharedString(ref s) => s.as_bytes(),
|
Binary::ArcSharedString(ref s) => s.as_bytes(),
|
||||||
}
|
}
|
||||||
@ -242,7 +220,6 @@ mod tests {
|
|||||||
fn test_body_is_streaming() {
|
fn test_body_is_streaming() {
|
||||||
assert_eq!(Body::Empty.is_streaming(), false);
|
assert_eq!(Body::Empty.is_streaming(), false);
|
||||||
assert_eq!(Body::Binary(Binary::from("")).is_streaming(), false);
|
assert_eq!(Body::Binary(Binary::from("")).is_streaming(), false);
|
||||||
// assert_eq!(Body::Streaming.is_streaming(), true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -277,15 +254,6 @@ mod tests {
|
|||||||
assert_eq!(Binary::from(Bytes::from("test")).as_ref(), "test".as_bytes());
|
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]
|
#[test]
|
||||||
fn test_ref_string() {
|
fn test_ref_string() {
|
||||||
let b = Rc::new("test".to_owned());
|
let b = Rc::new("test".to_owned());
|
||||||
@ -302,15 +270,6 @@ mod tests {
|
|||||||
assert_eq!(Binary::from(&b).as_ref(), "test".as_bytes());
|
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]
|
#[test]
|
||||||
fn test_arc_string() {
|
fn test_arc_string() {
|
||||||
let b = Arc::new("test".to_owned());
|
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.clone()).len(), 4);
|
||||||
assert_eq!(Binary::from(b).as_ref(), "test".as_bytes());
|
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() {
|
fn test_response() {
|
||||||
let cors = Cors::build()
|
let cors = Cors::build()
|
||||||
.send_wildcard()
|
.send_wildcard()
|
||||||
|
.disable_preflight()
|
||||||
.max_age(3600)
|
.max_age(3600)
|
||||||
.allowed_methods(vec![Method::GET, Method::OPTIONS, Method::POST])
|
.allowed_methods(vec![Method::GET, Method::OPTIONS, Method::POST])
|
||||||
.allowed_headers(vec![header::AUTHORIZATION, header::ACCEPT])
|
.allowed_headers(vec![header::AUTHORIZATION, header::ACCEPT])
|
||||||
@ -823,6 +824,7 @@ mod tests {
|
|||||||
resp.headers().get(header::VARY).unwrap().as_bytes());
|
resp.headers().get(header::VARY).unwrap().as_bytes());
|
||||||
|
|
||||||
let cors = Cors::build()
|
let cors = Cors::build()
|
||||||
|
.disable_vary_header()
|
||||||
.allowed_origin("https://www.example.com")
|
.allowed_origin("https://www.example.com")
|
||||||
.finish().unwrap();
|
.finish().unwrap();
|
||||||
let resp: HttpResponse = HTTPOk.into();
|
let resp: HttpResponse = HTTPOk.into();
|
||||||
|
Loading…
Reference in New Issue
Block a user