Skip to content

Commit a27bca8

Browse files
Daniel LockyerMichael Eden
Daniel Lockyer
authored and
Michael Eden
committed
Fix up some issues indicated by clippy (#116)
* Remove lifetimes * Remove return keyword * Switch match to if/if-let * Remove unneeded borrowing * Switch iterator call to direct reference * Let WebSocketKey derive Default * Remove simple closure * Use helper function * Switch Vec-ref to remove extra reference
1 parent fc93ffb commit a27bca8

File tree

15 files changed

+51
-64
lines changed

15 files changed

+51
-64
lines changed

examples/client.rs

+4-7
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,10 @@ fn main() {
3737
return;
3838
}
3939
};
40-
match message.opcode {
41-
Type::Close => {
42-
let _ = sender.send_message(&message);
43-
// If it's a close message, just send it and then return.
44-
return;
45-
}
46-
_ => (),
40+
if Type::Close == message.opcode {
41+
let _ = sender.send_message(&message);
42+
// If it's a close message, just send it and then return.
43+
return;
4744
}
4845
// Send the message
4946
match sender.send_message(&message) {

src/client/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ impl<S> Client<S>
157157
}
158158

159159
/// Returns an iterator over incoming data frames.
160-
pub fn incoming_dataframes<'a>(&'a mut self) -> DataFrameIterator<'a, Receiver, BufReader<S>> {
160+
pub fn incoming_dataframes(&mut self) -> DataFrameIterator<Receiver, BufReader<S>> {
161161
self.receiver.incoming_dataframes(&mut self.stream)
162162
}
163163

src/dataframe.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,12 @@ impl DataFrameable for DataFrame {
8585
}
8686

8787
#[inline(always)]
88-
fn reserved<'a>(&'a self) -> &'a [bool; 3] {
88+
fn reserved(&self) -> &[bool; 3] {
8989
&self.reserved
9090
}
9191

9292
#[inline(always)]
93-
fn payload<'a>(&'a self) -> Cow<'a, [u8]> {
93+
fn payload(&self) -> Cow<[u8]> {
9494
Cow::Borrowed(&self.data)
9595
}
9696
}

src/header/accept.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,12 @@ impl FromStr for WebSocketAccept {
3131
}
3232
let mut array = [0u8; 20];
3333
let mut iter = vec.into_iter();
34-
for i in array.iter_mut() {
34+
for i in &mut array {
3535
*i = iter.next().unwrap();
3636
}
3737
Ok(WebSocketAccept(array))
3838
}
39-
Err(_) => {
40-
return Err(WebSocketError::ProtocolError("Invalid Sec-WebSocket-Accept "));
41-
}
39+
Err(_) => Err(WebSocketError::ProtocolError("Invalid Sec-WebSocket-Accept ")),
4240
}
4341
}
4442
}

src/header/extensions.rs

+5-6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub struct WebSocketExtensions(pub Vec<Extension>);
1919
impl Deref for WebSocketExtensions {
2020
type Target = Vec<Extension>;
2121

22-
fn deref<'a>(&'a self) -> &'a Vec<Extension> {
22+
fn deref(&self) -> &Vec<Extension> {
2323
&self.0
2424
}
2525
}
@@ -69,7 +69,7 @@ impl FromStr for Extension {
6969
impl fmt::Display for Extension {
7070
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7171
try!(write!(f, "{}", self.name));
72-
for param in self.params.iter() {
72+
for param in &self.params {
7373
try!(write!(f, "; {}", param));
7474
}
7575
Ok(())
@@ -98,9 +98,8 @@ impl Parameter {
9898
impl fmt::Display for Parameter {
9999
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
100100
try!(write!(f, "{}", self.name));
101-
match self.value {
102-
Some(ref x) => try!(write!(f, "={}", x)),
103-
None => (),
101+
if let Some(ref x) = self.value {
102+
try!(write!(f, "={}", x));
104103
}
105104
Ok(())
106105
}
@@ -112,7 +111,7 @@ impl Header for WebSocketExtensions {
112111
}
113112

114113
fn parse_header(raw: &[Vec<u8>]) -> hyper::Result<WebSocketExtensions> {
115-
from_comma_delimited(raw).map(|vec| WebSocketExtensions(vec))
114+
from_comma_delimited(raw).map(WebSocketExtensions)
116115
}
117116
}
118117

src/header/key.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use serialize::base64::{ToBase64, FromBase64, STANDARD};
99
use result::{WebSocketResult, WebSocketError};
1010

1111
/// Represents a Sec-WebSocket-Key header.
12-
#[derive(PartialEq, Clone, Copy)]
12+
#[derive(PartialEq, Clone, Copy, Default)]
1313
pub struct WebSocketKey(pub [u8; 16]);
1414

1515
impl Debug for WebSocketKey {
@@ -29,15 +29,13 @@ impl FromStr for WebSocketKey {
2929
}
3030
let mut array = [0u8; 16];
3131
let mut iter = vec.into_iter();
32-
for i in array.iter_mut() {
32+
for i in &mut array {
3333
*i = iter.next().unwrap();
3434
}
3535

3636
Ok(WebSocketKey(array))
3737
}
38-
Err(_) => {
39-
return Err(WebSocketError::ProtocolError("Invalid Sec-WebSocket-Accept"));
40-
}
38+
Err(_) => Err(WebSocketError::ProtocolError("Invalid Sec-WebSocket-Accept")),
4139
}
4240
}
4341
}

src/header/origin.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub struct Origin(pub String);
1010

1111
impl Deref for Origin {
1212
type Target = String;
13-
fn deref<'a>(&'a self) -> &'a String {
13+
fn deref(&self) -> &String {
1414
&self.0
1515
}
1616
}
@@ -21,7 +21,7 @@ impl Header for Origin {
2121
}
2222

2323
fn parse_header(raw: &[Vec<u8>]) -> hyper::Result<Origin> {
24-
from_one_raw_str(raw).map(|s| Origin(s))
24+
from_one_raw_str(raw).map(Origin)
2525
}
2626
}
2727

src/header/protocol.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub struct WebSocketProtocol(pub Vec<String>);
1212

1313
impl Deref for WebSocketProtocol {
1414
type Target = Vec<String>;
15-
fn deref<'a>(&'a self) -> &'a Vec<String> {
15+
fn deref(&self) -> &Vec<String> {
1616
&self.0
1717
}
1818
}
@@ -23,7 +23,7 @@ impl Header for WebSocketProtocol {
2323
}
2424

2525
fn parse_header(raw: &[Vec<u8>]) -> hyper::Result<WebSocketProtocol> {
26-
from_comma_delimited(raw).map(|vec| WebSocketProtocol(vec))
26+
from_comma_delimited(raw).map(WebSocketProtocol)
2727
}
2828
}
2929

src/lib.rs

+6-10
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,13 @@ macro_rules! upsert_header {
6565
Some($pat:pat) => $some_match:expr,
6666
None => $default:expr
6767
}) => {{
68-
match $headers.has::<$header>() {
69-
true => {
70-
match $headers.get_mut::<$header>() {
71-
Some($pat) => { $some_match; },
72-
None => (),
73-
};
68+
if $headers.has::<$header>() {
69+
if let Some($pat) = $headers.get_mut::<$header>() {
70+
$some_match
7471
}
75-
false => {
76-
$headers.set($default);
77-
},
78-
};
72+
} else {
73+
$headers.set($default);
74+
}
7975
}}
8076
}
8177

src/message.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,11 @@ impl<'a> ws::dataframe::DataFrame for Message<'a> {
132132
}
133133

134134
#[inline(always)]
135-
fn reserved<'b>(&'b self) -> &'b [bool; 3] {
135+
fn reserved(&self) -> &[bool; 3] {
136136
FALSE_RESERVED_BITS
137137
}
138138

139-
fn payload<'b>(&'b self) -> Cow<'b, [u8]> {
139+
fn payload(&self) -> Cow<[u8]> {
140140
let mut buf = Vec::with_capacity(self.size());
141141
self.write_payload(&mut buf).ok();
142142
Cow::Owned(buf)
@@ -188,7 +188,7 @@ impl<'a, 'b> ws::Message<'b, &'b Message<'a>> for Message<'a> {
188188
Some(Opcode::Text) => Message::text(try!(bytes_to_string(&data[..]))),
189189
Some(Opcode::Binary) => Message::binary(data),
190190
Some(Opcode::Close) => {
191-
if data.len() > 0 {
191+
if !data.is_empty() {
192192
let status_code = try!((&data[..]).read_u16::<BigEndian>());
193193
let reason = try!(bytes_to_string(&data[2..]));
194194
Message::close_because(status_code, reason)

src/receiver.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl<R> Reader<R>
3434
}
3535

3636
/// Returns an iterator over incoming data frames.
37-
pub fn incoming_dataframes<'a>(&'a mut self) -> DataFrameIterator<'a, Receiver, BufReader<R>> {
37+
pub fn incoming_dataframes(&mut self) -> DataFrameIterator<Receiver, BufReader<R>> {
3838
self.receiver.incoming_dataframes(&mut self.stream)
3939
}
4040

src/server/upgrade/mod.rs

+13-13
Original file line numberDiff line numberDiff line change
@@ -346,17 +346,17 @@ impl Display for HyperIntoWsError {
346346
impl Error for HyperIntoWsError {
347347
fn description(&self) -> &str {
348348
use self::HyperIntoWsError::*;
349-
match self {
350-
&MethodNotGet => "Request method must be GET",
351-
&UnsupportedHttpVersion => "Unsupported request HTTP version",
352-
&UnsupportedWebsocketVersion => "Unsupported WebSocket version",
353-
&NoSecWsKeyHeader => "Missing Sec-WebSocket-Key header",
354-
&NoWsUpgradeHeader => "Invalid Upgrade WebSocket header",
355-
&NoUpgradeHeader => "Missing Upgrade WebSocket header",
356-
&NoWsConnectionHeader => "Invalid Connection WebSocket header",
357-
&NoConnectionHeader => "Missing Connection WebSocket header",
358-
&Io(ref e) => e.description(),
359-
&Parsing(ref e) => e.description(),
349+
match *self {
350+
MethodNotGet => "Request method must be GET",
351+
UnsupportedHttpVersion => "Unsupported request HTTP version",
352+
UnsupportedWebsocketVersion => "Unsupported WebSocket version",
353+
NoSecWsKeyHeader => "Missing Sec-WebSocket-Key header",
354+
NoWsUpgradeHeader => "Invalid Upgrade WebSocket header",
355+
NoUpgradeHeader => "Missing Upgrade WebSocket header",
356+
NoWsConnectionHeader => "Invalid Connection WebSocket header",
357+
NoConnectionHeader => "Missing Connection WebSocket header",
358+
Io(ref e) => e.description(),
359+
Parsing(ref e) => e.description(),
360360
}
361361
}
362362

@@ -413,9 +413,9 @@ fn validate(
413413
None => return Err(HyperIntoWsError::NoUpgradeHeader),
414414
};
415415

416-
fn check_connection_header(headers: &Vec<ConnectionOption>) -> bool {
416+
fn check_connection_header(headers: &[ConnectionOption]) -> bool {
417417
for header in headers {
418-
if let &ConnectionOption::ConnectionHeader(ref h) = header {
418+
if let ConnectionOption::ConnectionHeader(ref h) = *header {
419419
if UniCase(h as &str) == UniCase("upgrade") {
420420
return true;
421421
}

src/stream.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ pub trait AsTcpStream {
6767

6868
impl AsTcpStream for TcpStream {
6969
fn as_tcp(&self) -> &TcpStream {
70-
&self
70+
self
7171
}
7272
}
7373

src/ws/dataframe.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ pub trait DataFrame {
1818
/// What type of data does this dataframe contain?
1919
fn opcode(&self) -> u8;
2020
/// Reserved bits of this dataframe
21-
fn reserved<'a>(&'a self) -> &'a [bool; 3];
21+
fn reserved(&self) -> &[bool; 3];
2222
/// Entire payload of the dataframe. If not known then implement
2323
/// write_payload as that is the actual method used when sending the
2424
/// dataframe over the wire.
25-
fn payload<'a>(&'a self) -> Cow<'a, [u8]>;
25+
fn payload(&self) -> Cow<[u8]>;
2626

2727
/// How long (in bytes) is this dataframe's payload
2828
fn size(&self) -> usize {
@@ -95,12 +95,12 @@ impl<'a, D> DataFrame for &'a D
9595
}
9696

9797
#[inline(always)]
98-
fn reserved<'b>(&'b self) -> &'b [bool; 3] {
98+
fn reserved(&self) -> &[bool; 3] {
9999
D::reserved(self)
100100
}
101101

102102
#[inline(always)]
103-
fn payload<'b>(&'b self) -> Cow<'b, [u8]> {
103+
fn payload(&self) -> Cow<[u8]> {
104104
D::payload(self)
105105
}
106106

src/ws/util/header.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,8 @@ pub fn write_header<W>(writer: &mut W, header: DataFrameHeader) -> WebSocketResu
6161
}
6262

6363
// Write 'Masking-key'
64-
match header.mask {
65-
Some(mask) => try!(writer.write_all(&mask)),
66-
None => (),
64+
if let Some(mask) = header.mask {
65+
try!(writer.write_all(&mask))
6766
}
6867

6968
Ok(())

0 commit comments

Comments
 (0)