removed unused code from util and unnecessary dependency of FixedHash (#1824)
This commit is contained in:
		
							parent
							
								
									11b65ce53d
								
							
						
					
					
						commit
						531bc79edc
					
				| @ -35,46 +35,8 @@ | |||||||
| use std::fmt; | use std::fmt; | ||||||
| use std::slice; | use std::slice; | ||||||
| use std::ops::{Deref, DerefMut}; | use std::ops::{Deref, DerefMut}; | ||||||
| use elastic_array::*; |  | ||||||
| 
 | 
 | ||||||
| /// Vector like object
 | /// Slice pretty print helper
 | ||||||
| pub trait VecLike<T> { |  | ||||||
| 	/// Add an element to the collection
 |  | ||||||
|     fn vec_push(&mut self, value: T); |  | ||||||
| 
 |  | ||||||
| 	/// Add a slice to the collection
 |  | ||||||
|     fn vec_extend(&mut self, slice: &[T]); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| impl<T> VecLike<T> for Vec<T> where T: Copy { |  | ||||||
| 	fn vec_push(&mut self, value: T) { |  | ||||||
| 		Vec::<T>::push(self, value) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	fn vec_extend(&mut self, slice: &[T]) { |  | ||||||
| 		Vec::<T>::extend_from_slice(self, slice) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| macro_rules! impl_veclike_for_elastic_array { |  | ||||||
| 	($from: ident) => { |  | ||||||
| 		impl<T> VecLike<T> for $from<T> where T: Copy { |  | ||||||
| 			fn vec_push(&mut self, value: T) { |  | ||||||
| 				$from::<T>::push(self, value) |  | ||||||
| 			} |  | ||||||
| 			fn vec_extend(&mut self, slice: &[T]) { |  | ||||||
| 				$from::<T>::append_slice(self, slice) |  | ||||||
| 
 |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| impl_veclike_for_elastic_array!(ElasticArray16); |  | ||||||
| impl_veclike_for_elastic_array!(ElasticArray32); |  | ||||||
| impl_veclike_for_elastic_array!(ElasticArray1024); |  | ||||||
| 
 |  | ||||||
| /// Slie pretty print helper
 |  | ||||||
| pub struct PrettySlice<'a> (&'a [u8]); | pub struct PrettySlice<'a> (&'a [u8]); | ||||||
| 
 | 
 | ||||||
| impl<'a> fmt::Debug for PrettySlice<'a> { | impl<'a> fmt::Debug for PrettySlice<'a> { | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ use std::fmt; | |||||||
| use std::cmp::Ordering; | use std::cmp::Ordering; | ||||||
| use std::error::Error as StdError; | use std::error::Error as StdError; | ||||||
| use bigint::uint::{Uint, U128, U256}; | use bigint::uint::{Uint, U128, U256}; | ||||||
| use hash::FixedHash; | use hash::{H64, H128, Address, H256, H512, H520, H2048}; | ||||||
| use elastic_array::*; | use elastic_array::*; | ||||||
| 
 | 
 | ||||||
| /// Vector like object
 | /// Vector like object
 | ||||||
| @ -146,13 +146,25 @@ macro_rules! impl_uint_to_bytes { | |||||||
| impl_uint_to_bytes!(U256); | impl_uint_to_bytes!(U256); | ||||||
| impl_uint_to_bytes!(U128); | impl_uint_to_bytes!(U128); | ||||||
| 
 | 
 | ||||||
| impl <T>ToBytes for T where T: FixedHash { | macro_rules! impl_hash_to_bytes { | ||||||
| 	fn to_bytes<V: VecLike<u8>>(&self, out: &mut V) { | 	($name: ident) => { | ||||||
| 		out.vec_extend(self.as_slice()); | 		impl ToBytes for $name { | ||||||
|  | 			fn to_bytes<V: VecLike<u8>>(&self, out: &mut V) { | ||||||
|  | 				out.vec_extend(&self); | ||||||
|  | 			} | ||||||
|  | 			fn to_bytes_len(&self) -> usize { self.len() } | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 	fn to_bytes_len(&self) -> usize { self.as_slice().len() } |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | impl_hash_to_bytes!(H64); | ||||||
|  | impl_hash_to_bytes!(H128); | ||||||
|  | impl_hash_to_bytes!(Address); | ||||||
|  | impl_hash_to_bytes!(H256); | ||||||
|  | impl_hash_to_bytes!(H512); | ||||||
|  | impl_hash_to_bytes!(H520); | ||||||
|  | impl_hash_to_bytes!(H2048); | ||||||
|  | 
 | ||||||
| /// Error returned when `FromBytes` conversation goes wrong
 | /// Error returned when `FromBytes` conversation goes wrong
 | ||||||
| #[derive(Debug, PartialEq, Eq)] | #[derive(Debug, PartialEq, Eq)] | ||||||
| pub enum FromBytesError { | pub enum FromBytesError { | ||||||
| @ -250,15 +262,29 @@ macro_rules! impl_uint_from_bytes { | |||||||
| impl_uint_from_bytes!(U256, 32); | impl_uint_from_bytes!(U256, 32); | ||||||
| impl_uint_from_bytes!(U128, 16); | impl_uint_from_bytes!(U128, 16); | ||||||
| 
 | 
 | ||||||
| impl <T>FromBytes for T where T: FixedHash { | macro_rules! impl_hash_from_bytes { | ||||||
| 	fn from_bytes(bytes: &[u8]) -> FromBytesResult<T> { | 	($name: ident, $size: expr) => { | ||||||
| 		match bytes.len().cmp(&T::len()) { | 		impl FromBytes for $name { | ||||||
| 			Ordering::Less => return Err(FromBytesError::DataIsTooShort), | 			fn from_bytes(bytes: &[u8]) -> FromBytesResult<$name> { | ||||||
| 			Ordering::Greater => return Err(FromBytesError::DataIsTooLong), | 				match bytes.len().cmp(&$size) { | ||||||
| 			Ordering::Equal => () | 					Ordering::Less => Err(FromBytesError::DataIsTooShort), | ||||||
| 		}; | 					Ordering::Greater => Err(FromBytesError::DataIsTooLong), | ||||||
| 
 | 					Ordering::Equal => { | ||||||
| 		Ok(T::from_slice(bytes)) | 						let mut t = [0u8; $size]; | ||||||
|  | 						t.copy_from_slice(bytes); | ||||||
|  | 						Ok($name(t)) | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | impl_hash_from_bytes!(H64, 8); | ||||||
|  | impl_hash_from_bytes!(H128, 16); | ||||||
|  | impl_hash_from_bytes!(Address, 20); | ||||||
|  | impl_hash_from_bytes!(H256, 32); | ||||||
|  | impl_hash_from_bytes!(H512, 64); | ||||||
|  | impl_hash_from_bytes!(H520, 65); | ||||||
|  | impl_hash_from_bytes!(H2048, 256); | ||||||
|  | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user