updated chain module to use new reader

This commit is contained in:
debris 2016-10-31 00:28:50 +01:00
parent 77204cb41c
commit 8d580471fa
5 changed files with 22 additions and 21 deletions

View File

@ -1,3 +1,4 @@
use std::io;
use hex::FromHex;
use hash::H256;
use ser::{
@ -23,7 +24,7 @@ impl Serializable for Block {
}
impl Deserializable for Block {
fn deserialize(reader: &mut Reader) -> Result<Self, ReaderError> where Self: Sized {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, ReaderError> where T: io::Read {
let result = Block {
block_header: try!(reader.read()),
transactions: try!(reader.read_list()),
@ -35,7 +36,7 @@ impl Deserializable for Block {
impl From<&'static str> for Block {
fn from(s: &'static str) -> Self {
deserialize(&s.from_hex().unwrap()).unwrap()
deserialize(&s.from_hex().unwrap() as &[u8]).unwrap()
}
}

View File

@ -1,4 +1,4 @@
use std::fmt;
use std::{fmt, io};
use ser::{
Deserializable, Reader, Error as ReaderError,
Serializable, Stream, serialize
@ -48,7 +48,7 @@ impl Serializable for BlockHeader {
}
impl Deserializable for BlockHeader {
fn deserialize(reader: &mut Reader) -> Result<Self, ReaderError> where Self: Sized {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, ReaderError> where T: io::Read {
let block_header = BlockHeader {
version: try!(reader.read()),
previous_header_hash: try!(reader.read()),

View File

@ -1,7 +1,7 @@
//! Bitcoin trainsaction.
//! https://en.bitcoin.it/wiki/Protocol_documentation#tx
use std::io;
use heapsize::HeapSizeOf;
use hex::FromHex;
use bytes::Bytes;
@ -51,7 +51,7 @@ impl Serializable for OutPoint {
}
impl Deserializable for OutPoint {
fn deserialize(reader: &mut Reader) -> Result<Self, ReaderError> where Self: Sized {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, ReaderError> where T: io::Read {
let result = OutPoint {
hash: try!(reader.read()),
index: try!(reader.read()),
@ -95,7 +95,7 @@ impl Serializable for TransactionInput {
}
impl Deserializable for TransactionInput {
fn deserialize(reader: &mut Reader) -> Result<Self, ReaderError> where Self: Sized {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, ReaderError> where T: io::Read {
let result = TransactionInput {
previous_output: try!(reader.read()),
script_sig: try!(reader.read()),
@ -147,7 +147,7 @@ impl Serializable for TransactionOutput {
}
impl Deserializable for TransactionOutput {
fn deserialize(reader: &mut Reader) -> Result<Self, ReaderError> where Self: Sized {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, ReaderError> where T: io::Read {
let result = TransactionOutput {
value: try!(reader.read()),
script_pubkey: try!(reader.read()),
@ -209,7 +209,7 @@ impl Serializable for Transaction {
}
impl Deserializable for Transaction {
fn deserialize(reader: &mut Reader) -> Result<Self, ReaderError> where Self: Sized {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, ReaderError> where T: io::Read {
let result = Transaction {
version: try!(reader.read()),
inputs: try!(reader.read_list()),
@ -223,7 +223,7 @@ impl Deserializable for Transaction {
impl From<&'static str> for Transaction {
fn from(s: &'static str) -> Self {
deserialize(&s.from_hex().unwrap()).unwrap()
deserialize(&s.from_hex().unwrap() as &[u8]).unwrap()
}
}

View File

@ -94,7 +94,7 @@ impl Serializable for CompactInteger {
}
impl Deserializable for CompactInteger {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, ReaderError> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, ReaderError> where T: io::Read {
let result = match try!(reader.read::<u8>()) {
i @ 0...0xfc => i.into(),
0xfd => try!(reader.read::<u16>()).into(),

View File

@ -91,7 +91,7 @@ impl Serializable for u64 {
impl Deserializable for bool {
#[inline]
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
let value = try!(reader.read_u8());
match value {
0 => Ok(false),
@ -103,42 +103,42 @@ impl Deserializable for bool {
impl Deserializable for i32 {
#[inline]
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
Ok(try!(reader.read_i32::<LittleEndian>()))
}
}
impl Deserializable for i64 {
#[inline]
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
Ok(try!(reader.read_i64::<LittleEndian>()))
}
}
impl Deserializable for u8 {
#[inline]
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
Ok(try!(reader.read_u8()))
}
}
impl Deserializable for u16 {
#[inline]
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
Ok(try!(reader.read_u16::<LittleEndian>()))
}
}
impl Deserializable for u32 {
#[inline]
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
Ok(try!(reader.read_u32::<LittleEndian>()))
}
}
impl Deserializable for u64 {
#[inline]
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
Ok(try!(reader.read_u64::<LittleEndian>()))
}
}
@ -159,7 +159,7 @@ impl Serializable for String {
}
impl Deserializable for String {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
let bytes: Bytes = try!(reader.read());
Ok(String::from_utf8_lossy(&bytes).into_owned())
}
@ -179,7 +179,7 @@ macro_rules! impl_ser_for_hash {
}
impl Deserializable for $name {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
let mut result = Self::default();
try!(reader.read_slice(&mut *result));
Ok(result)
@ -211,7 +211,7 @@ impl Serializable for Bytes {
}
impl Deserializable for Bytes {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where Self: Sized, T: io::Read {
fn deserialize<T>(reader: &mut Reader<T>) -> Result<Self, Error> where T: io::Read {
let len = try!(reader.read::<CompactInteger>());
let mut bytes = Bytes::new_with_len(len.into());
try!(reader.read_slice(&mut bytes));