core: various cleanups, improvements, code comments (#38)

* core: cleanup slicing impls for Hash
* core: clean up Readable trait, implement Readable/Writeable for various integers
* core: change Hash debug output to hex
* core: correct warnings in all modules
This commit is contained in:
Merope Riddle
2017-04-10 06:17:23 +00:00
committed by Ignotus Peverell
parent 9e82fb1774
commit 39ddeb0a2a
16 changed files with 224 additions and 102 deletions
+11 -11
View File
@@ -69,7 +69,7 @@ enum_from_primitive! {
/// the header first, handles its validation and then reads the Readable body,
/// allocating buffers of the right size.
pub fn read_msg<T>(conn: TcpStream) -> Box<Future<Item = (TcpStream, T), Error = Error>>
where T: Readable<T> + 'static
where T: Readable + 'static
{
let read_header = read_exact(conn, vec![0u8; HEADER_LEN as usize])
.from_err()
@@ -157,7 +157,7 @@ impl Writeable for MsgHeader {
}
}
impl Readable<MsgHeader> for MsgHeader {
impl Readable for MsgHeader {
fn read(reader: &mut Reader) -> Result<MsgHeader, ser::Error> {
try!(reader.expect_u8(MAGIC[0]));
try!(reader.expect_u8(MAGIC[1]));
@@ -209,7 +209,7 @@ impl Writeable for Hand {
}
}
impl Readable<Hand> for Hand {
impl Readable for Hand {
fn read(reader: &mut Reader) -> Result<Hand, ser::Error> {
let (version, capab, nonce) = ser_multiread!(reader, read_u32, read_u32, read_u64);
let total_diff = try!(Difficulty::read(reader));
@@ -256,7 +256,7 @@ impl Writeable for Shake {
}
}
impl Readable<Shake> for Shake {
impl Readable for Shake {
fn read(reader: &mut Reader) -> Result<Shake, ser::Error> {
let (version, capab) = ser_multiread!(reader, read_u32, read_u32);
let total_diff = try!(Difficulty::read(reader));
@@ -284,7 +284,7 @@ impl Writeable for GetPeerAddrs {
}
}
impl Readable<GetPeerAddrs> for GetPeerAddrs {
impl Readable for GetPeerAddrs {
fn read(reader: &mut Reader) -> Result<GetPeerAddrs, ser::Error> {
let capab = try!(reader.read_u32());
let capabilities = try!(Capabilities::from_bits(capab).ok_or(ser::Error::CorruptedData));
@@ -308,7 +308,7 @@ impl Writeable for PeerAddrs {
}
}
impl Readable<PeerAddrs> for PeerAddrs {
impl Readable for PeerAddrs {
fn read(reader: &mut Reader) -> Result<PeerAddrs, ser::Error> {
let peer_count = try!(reader.read_u32());
if peer_count > MAX_PEER_ADDRS {
@@ -341,7 +341,7 @@ impl Writeable for PeerError {
}
}
impl Readable<PeerError> for PeerError {
impl Readable for PeerError {
fn read(reader: &mut Reader) -> Result<PeerError, ser::Error> {
let (code, msg) = ser_multiread!(reader, read_u32, read_vec);
let message = try!(String::from_utf8(msg).map_err(|_| ser::Error::CorruptedData));
@@ -378,7 +378,7 @@ impl Writeable for SockAddr {
}
}
impl Readable<SockAddr> for SockAddr {
impl Readable for SockAddr {
fn read(reader: &mut Reader) -> Result<SockAddr, ser::Error> {
let v4_or_v6 = try!(reader.read_u8());
if v4_or_v6 == 0 {
@@ -422,7 +422,7 @@ impl Writeable for Locator {
}
}
impl Readable<Locator> for Locator {
impl Readable for Locator {
fn read(reader: &mut Reader) -> Result<Locator, ser::Error> {
let len = reader.read_u8()?;
let mut hashes = Vec::with_capacity(len as usize);
@@ -448,7 +448,7 @@ impl Writeable for Headers {
}
}
impl Readable<Headers> for Headers {
impl Readable for Headers {
fn read(reader: &mut Reader) -> Result<Headers, ser::Error> {
let len = reader.read_u16()?;
let mut headers = Vec::with_capacity(len as usize);
@@ -469,7 +469,7 @@ impl Writeable for Empty {
}
}
impl Readable<Empty> for Empty {
impl Readable for Empty {
fn read(reader: &mut Reader) -> Result<Empty, ser::Error> {
Ok(Empty {})
}
+1 -1
View File
@@ -60,7 +60,7 @@ impl Writeable for PeerData {
}
}
impl Readable<PeerData> for PeerData {
impl Readable for PeerData {
fn read(reader: &mut Reader) -> Result<PeerData, ser::Error> {
let addr = SockAddr::read(reader)?;
let (capab, ua, fl) = ser_multiread!(reader, read_u32, read_vec, read_u8);