Skip to content

Commit 599e5db

Browse files
committed
Drop byteorder dependency
We're only using it for read_u8 which is a bit silly
1 parent 90c1279 commit 599e5db

File tree

5 files changed

+20
-16
lines changed

5 files changed

+20
-16
lines changed

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ with-uuid = ["uuid"]
3333

3434
[dependencies]
3535
bufstream = "0.1"
36-
byteorder = "0.5"
3736
fallible-iterator = "0.1.3"
3837
hex = "0.2"
3938
log = "0.3"

src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
#![allow(unknown_lints, needless_lifetimes, doc_markdown)] // for clippy
4444

4545
extern crate bufstream;
46-
extern crate byteorder;
4746
extern crate fallible_iterator;
4847
extern crate hex;
4948
#[macro_use]

src/priv_io.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use byteorder::ReadBytesExt;
21
use std::io;
32
use std::io::prelude::*;
43
use std::fmt;
@@ -70,19 +69,21 @@ impl MessageStream {
7069
}
7170

7271
pub fn read_message(&mut self) -> io::Result<backend::Message> {
73-
let b = try!(self.stream.read_u8());
74-
self.inner_read_message(b)
72+
let mut b = [0; 1];
73+
try!(self.stream.read_exact(&mut b));
74+
self.inner_read_message(b[0])
7575
}
7676

7777
pub fn read_message_timeout(&mut self,
7878
timeout: Duration)
7979
-> io::Result<Option<backend::Message>> {
8080
try!(self.set_read_timeout(Some(timeout)));
81-
let b = self.stream.read_u8();
81+
let mut b = [0; 1];
82+
let r = self.stream.read_exact(&mut b);
8283
try!(self.set_read_timeout(None));
8384

84-
match b {
85-
Ok(b) => self.inner_read_message(b).map(Some),
85+
match r {
86+
Ok(()) => self.inner_read_message(b[0]).map(Some),
8687
Err(ref e) if e.kind() == io::ErrorKind::WouldBlock ||
8788
e.kind() == io::ErrorKind::TimedOut => Ok(None),
8889
Err(e) => Err(e),
@@ -91,11 +92,12 @@ impl MessageStream {
9192

9293
pub fn read_message_nonblocking(&mut self) -> io::Result<Option<backend::Message>> {
9394
try!(self.set_nonblocking(true));
94-
let b = self.stream.read_u8();
95+
let mut b = [0; 1];
96+
let r = self.stream.read_exact(&mut b);
9597
try!(self.set_nonblocking(false));
9698

97-
match b {
98-
Ok(b) => self.inner_read_message(b).map(Some),
99+
match r {
100+
Ok(()) => self.inner_read_message(b[0]).map(Some),
99101
Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => Ok(None),
100102
Err(e) => Err(e),
101103
}
@@ -253,7 +255,9 @@ pub fn initialize_stream(params: &ConnectParams,
253255
try!(socket.write_all(&buf));
254256
try!(socket.flush());
255257

256-
if try!(socket.read_u8()) == b'N' {
258+
let mut b = [0; 1];
259+
try!(socket.read_exact(&mut b));
260+
if b[0] == b'N' {
257261
if tls_required {
258262
return Err(ConnectError::Tls("the server does not support TLS".into()));
259263
} else {

src/types/rustc_serialize.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ extern crate rustc_serialize;
22

33
use self::rustc_serialize::json;
44
use std::io::{Cursor, Write};
5-
use byteorder::ReadBytesExt;
65
use std::error::Error;
76

87
use types::{FromSql, ToSql, IsNull, Type, SessionInfo};
@@ -14,8 +13,10 @@ impl FromSql for json::Json {
1413
-> Result<json::Json, Box<Error + Sync + Send>> {
1514
let mut raw = Cursor::new(raw);
1615
if let Type::Jsonb = *ty {
16+
let mut b = [0; 1];
17+
try!(raw.read_exact(&mut b));
1718
// We only support version 1 of the jsonb binary format
18-
if try!(raw.read_u8()) != 1 {
19+
if b[0] != 1 {
1920
return Err("unsupported JSONB encoding version".into());
2021
}
2122
}

src/types/serde_json.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
extern crate serde_json;
22

3-
use byteorder::ReadBytesExt;
43
use self::serde_json::Value;
54
use std::error::Error;
65
use std::io::Write;
@@ -13,8 +12,10 @@ impl FromSql for Value {
1312
_: &SessionInfo)
1413
-> Result<Value, Box<Error + Sync + Send>> {
1514
if let Type::Jsonb = *ty {
15+
let mut b = [0; 1];
16+
try!(raw.read_exact(&mut b));
1617
// We only support version 1 of the jsonb binary format
17-
if try!(raw.read_u8()) != 1 {
18+
if b[0] != 1 {
1819
return Err("unsupported JSONB encoding version".into());
1920
}
2021
}

0 commit comments

Comments
 (0)