Prettier diffing.
This commit is contained in:
		
							parent
							
								
									b4f7c63447
								
							
						
					
					
						commit
						37a3c8d259
					
				| @ -54,31 +54,43 @@ impl AccountDiff { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | fn format(u: &H256) -> String { | ||||||
|  | 	if u <= &H256::from(0xffffffff) { | ||||||
|  | 		format!("{} = 0x{:x}", U256::from(u.as_slice()).low_u32(), U256::from(u.as_slice()).low_u32()) | ||||||
|  | 	} else if u <= &H256::from(u64::max_value()) { | ||||||
|  | 		format!("{} = 0x{:x}", U256::from(u.as_slice()).low_u64(), U256::from(u.as_slice()).low_u64()) | ||||||
|  | //	} else if u <= &H256::from("0xffffffffffffffffffffffffffffffffffffffff") {
 | ||||||
|  | //		format!("@{}", Address::from(u))
 | ||||||
|  | 	} else { | ||||||
|  | 		format!("#{}", u) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #[derive(Debug,Clone,PartialEq,Eq)] | #[derive(Debug,Clone,PartialEq,Eq)] | ||||||
| pub struct StateDiff (BTreeMap<Address, AccountDiff>); | pub struct StateDiff (BTreeMap<Address, AccountDiff>); | ||||||
| 
 | 
 | ||||||
| impl fmt::Display for AccountDiff { | impl fmt::Display for AccountDiff { | ||||||
| 	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { | 	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { | ||||||
| 		match self.nonce { | 		match self.nonce { | ||||||
| 			Diff::Born(ref x) => try!(write!(f, "#{}", x)), | 			Diff::Born(ref x) => try!(write!(f, "  non {}", x)), | ||||||
| 			Diff::Changed(ref pre, ref post) => try!(write!(f, "#{} ({} {} {})", post, pre, if pre > post {"-"} else {"+"}, *max(pre, post) - *	min(pre, post))), | 			Diff::Changed(ref pre, ref post) => try!(write!(f, "#{} ({} {} {})", post, pre, if pre > post {"-"} else {"+"}, *max(pre, post) - *	min(pre, post))), | ||||||
| 			_ => {}, | 			_ => {}, | ||||||
| 		} | 		} | ||||||
| 		match self.balance { | 		match self.balance { | ||||||
| 			Diff::Born(ref x) => try!(write!(f, "${}", x)), | 			Diff::Born(ref x) => try!(write!(f, "  bal {}", x)), | ||||||
| 			Diff::Changed(ref pre, ref post) => try!(write!(f, "${} ({} {} {})", post, pre, if pre > post {"-"} else {"+"}, *max(pre, post) - *min(pre, post))), | 			Diff::Changed(ref pre, ref post) => try!(write!(f, "${} ({} {} {})", post, pre, if pre > post {"-"} else {"+"}, *max(pre, post) - *min(pre, post))), | ||||||
| 			_ => {}, | 			_ => {}, | ||||||
| 		} | 		} | ||||||
| 		match self.code { | 		match self.code { | ||||||
| 			Diff::Born(ref x) => try!(write!(f, "@{}", x.pretty())), | 			Diff::Born(ref x) => try!(write!(f, "  code {}", x.pretty())), | ||||||
| 			_ => {}, | 			_ => {}, | ||||||
| 		} | 		} | ||||||
| 		try!(write!(f, "\n")); | 		try!(write!(f, "\n")); | ||||||
| 		for (k, dv) in self.storage.iter() { | 		for (k, dv) in self.storage.iter() { | ||||||
| 			match dv { | 			match dv { | ||||||
| 				&Diff::Born(ref v) => try!(write!(f, "    +  {} => {}\n", k, v)), | 				&Diff::Born(ref v) => try!(write!(f, "    +  {} => {}\n", format(k), format(v))), | ||||||
| 				&Diff::Changed(ref pre, ref post) => try!(write!(f, "    *  {} => {} (was {})\n", k, post, pre)), | 				&Diff::Changed(ref pre, ref post) => try!(write!(f, "    *  {} => {} (was {})\n", format(k), format(post), format(pre))), | ||||||
| 				&Diff::Died(_) => try!(write!(f, "    X  {}\n", k)), | 				&Diff::Died(_) => try!(write!(f, "    X  {}\n", format(k))), | ||||||
| 				_ => {}, | 				_ => {}, | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user