mirror of
https://github.com/fafhrd91/actix-web
synced 2025-09-01 01:16:59 +02:00
clippy warnings
This commit is contained in:
@@ -3,7 +3,7 @@ use encoding::all::UTF_8;
|
||||
use encoding::label::encoding_from_whatwg_label;
|
||||
use encoding::types::{DecoderTrap, Encoding};
|
||||
use encoding::EncodingRef;
|
||||
use futures::{Future, Poll, Stream, Async};
|
||||
use futures::{Async, Future, Poll, Stream};
|
||||
use http::{header, HeaderMap};
|
||||
use http_range::HttpRange;
|
||||
use mime::Mime;
|
||||
@@ -12,8 +12,8 @@ use serde_urlencoded;
|
||||
use std::str;
|
||||
|
||||
use error::{
|
||||
ContentTypeError, HttpRangeError, ParseError, PayloadError, UrlencodedError,
|
||||
ReadlinesError
|
||||
ContentTypeError, HttpRangeError, ParseError, PayloadError, ReadlinesError,
|
||||
UrlencodedError,
|
||||
};
|
||||
use header::Header;
|
||||
use json::JsonBody;
|
||||
@@ -261,7 +261,7 @@ pub trait HttpMessage {
|
||||
let boundary = Multipart::boundary(self.headers());
|
||||
Multipart::new(boundary, self)
|
||||
}
|
||||
|
||||
|
||||
/// Return stream of lines.
|
||||
fn readlines(self) -> Readlines<Self>
|
||||
where
|
||||
@@ -295,7 +295,7 @@ where
|
||||
checked_buff: true,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// Change max line size. By default max size is 256Kb
|
||||
pub fn limit(mut self, limit: usize) -> Self {
|
||||
self.limit = limit;
|
||||
@@ -309,31 +309,31 @@ where
|
||||
{
|
||||
type Item = String;
|
||||
type Error = ReadlinesError;
|
||||
|
||||
|
||||
fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error> {
|
||||
let encoding = self.req.encoding()?;
|
||||
// check if there is a newline in the buffer
|
||||
if !self.checked_buff {
|
||||
let mut found: Option<usize> = None;
|
||||
for (ind, b) in self.buff.iter().enumerate() {
|
||||
if *b == '\n' as u8 {
|
||||
if *b == b'\n' {
|
||||
found = Some(ind);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if let Some(ind) = found {
|
||||
// check if line is longer than limit
|
||||
if ind+1 > self.limit {
|
||||
if ind + 1 > self.limit {
|
||||
return Err(ReadlinesError::LimitOverflow);
|
||||
}
|
||||
let enc: *const Encoding = encoding as *const Encoding;
|
||||
let line = if enc == UTF_8 {
|
||||
str::from_utf8(&self.buff.split_to(ind+1))
|
||||
str::from_utf8(&self.buff.split_to(ind + 1))
|
||||
.map_err(|_| ReadlinesError::EncodingError)?
|
||||
.to_owned()
|
||||
} else {
|
||||
encoding
|
||||
.decode(&self.buff.split_to(ind+1), DecoderTrap::Strict)
|
||||
.decode(&self.buff.split_to(ind + 1), DecoderTrap::Strict)
|
||||
.map_err(|_| ReadlinesError::EncodingError)?
|
||||
};
|
||||
return Ok(Async::Ready(Some(line)));
|
||||
@@ -346,24 +346,24 @@ where
|
||||
// check if there is a newline in bytes
|
||||
let mut found: Option<usize> = None;
|
||||
for (ind, b) in bytes.iter().enumerate() {
|
||||
if *b == '\n' as u8 {
|
||||
if *b == b'\n' {
|
||||
found = Some(ind);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if let Some(ind) = found {
|
||||
// check if line is longer than limit
|
||||
if ind+1 > self.limit {
|
||||
if ind + 1 > self.limit {
|
||||
return Err(ReadlinesError::LimitOverflow);
|
||||
}
|
||||
let enc: *const Encoding = encoding as *const Encoding;
|
||||
let line = if enc == UTF_8 {
|
||||
str::from_utf8(&bytes.split_to(ind+1))
|
||||
str::from_utf8(&bytes.split_to(ind + 1))
|
||||
.map_err(|_| ReadlinesError::EncodingError)?
|
||||
.to_owned()
|
||||
} else {
|
||||
encoding
|
||||
.decode(&bytes.split_to(ind+1), DecoderTrap::Strict)
|
||||
.decode(&bytes.split_to(ind + 1), DecoderTrap::Strict)
|
||||
.map_err(|_| ReadlinesError::EncodingError)?
|
||||
};
|
||||
// extend buffer with rest of the bytes;
|
||||
@@ -373,10 +373,10 @@ where
|
||||
}
|
||||
self.buff.extend_from_slice(&bytes);
|
||||
Ok(Async::NotReady)
|
||||
},
|
||||
}
|
||||
Ok(Async::NotReady) => Ok(Async::NotReady),
|
||||
Ok(Async::Ready(None)) => {
|
||||
if self.buff.len() == 0 {
|
||||
if self.buff.is_empty() {
|
||||
return Ok(Async::Ready(None));
|
||||
}
|
||||
if self.buff.len() > self.limit {
|
||||
@@ -393,8 +393,8 @@ where
|
||||
.map_err(|_| ReadlinesError::EncodingError)?
|
||||
};
|
||||
self.buff.clear();
|
||||
return Ok(Async::Ready(Some(line)))
|
||||
},
|
||||
Ok(Async::Ready(Some(line)))
|
||||
}
|
||||
Err(e) => Err(ReadlinesError::from(e)),
|
||||
}
|
||||
}
|
||||
@@ -805,29 +805,35 @@ mod tests {
|
||||
_ => unreachable!("error"),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
fn test_readlines() {
|
||||
let mut req = HttpRequest::default();
|
||||
req.payload_mut().unread_data(Bytes::from_static(
|
||||
b"Lorem Ipsum is simply dummy text of the printing and typesetting\n\
|
||||
industry. Lorem Ipsum has been the industry's standard dummy\n\
|
||||
Contrary to popular belief, Lorem Ipsum is not simply random text."
|
||||
Contrary to popular belief, Lorem Ipsum is not simply random text.",
|
||||
));
|
||||
let mut r = Readlines::new(req);
|
||||
match r.poll().ok().unwrap() {
|
||||
Async::Ready(Some(s)) => assert_eq!(s,
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting\n"),
|
||||
Async::Ready(Some(s)) => assert_eq!(
|
||||
s,
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting\n"
|
||||
),
|
||||
_ => unreachable!("error"),
|
||||
}
|
||||
match r.poll().ok().unwrap() {
|
||||
Async::Ready(Some(s)) => assert_eq!(s,
|
||||
"industry. Lorem Ipsum has been the industry's standard dummy\n"),
|
||||
Async::Ready(Some(s)) => assert_eq!(
|
||||
s,
|
||||
"industry. Lorem Ipsum has been the industry's standard dummy\n"
|
||||
),
|
||||
_ => unreachable!("error"),
|
||||
}
|
||||
match r.poll().ok().unwrap() {
|
||||
Async::Ready(Some(s)) => assert_eq!(s,
|
||||
"Contrary to popular belief, Lorem Ipsum is not simply random text."),
|
||||
Async::Ready(Some(s)) => assert_eq!(
|
||||
s,
|
||||
"Contrary to popular belief, Lorem Ipsum is not simply random text."
|
||||
),
|
||||
_ => unreachable!("error"),
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user