From af8ba067951dd1ed4bc3b36803015012f1b2736f Mon Sep 17 00:00:00 2001 From: arkpar Date: Thu, 18 Feb 2016 23:29:41 +0100 Subject: [PATCH] utils compilable in beta --- Cargo.lock | 120 ++++++++++++++++------------------ Cargo.toml | 1 - ethcore/src/lib.rs | 2 - util/Cargo.toml | 5 +- util/src/hash.rs | 9 --- util/src/lib.rs | 4 -- util/src/panics.rs | 25 ++++--- util/src/rlp/bytes.rs | 8 +-- util/src/rlp/untrusted_rlp.rs | 1 - util/src/uint.rs | 96 --------------------------- 10 files changed, 75 insertions(+), 196 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6cdb6f53f..236969732 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,7 +6,6 @@ dependencies = [ "ctrlc 1.0.1 (git+https://github.com/tomusdrw/rust-ctrlc.git)", "daemonize 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "docopt 0.6.78 (registry+https://github.com/rust-lang/crates.io-index)", - "docopt_macros 0.6.81 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "ethcore 0.9.99", "ethcore-rpc 0.9.99", @@ -20,7 +19,7 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "memchr 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -37,10 +36,10 @@ dependencies = [ [[package]] name = "aster" -version = "0.12.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "syntex_syntax 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syntex_syntax 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -69,7 +68,7 @@ version = "0.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "regex-syntax 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "semver 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -130,14 +129,6 @@ dependencies = [ "strsim 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "docopt_macros" -version = "0.6.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "docopt 0.6.78 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "elastic-array" version = "0.4.0" @@ -155,14 +146,14 @@ dependencies = [ [[package]] name = "eth-secp256k1" version = "0.5.4" -source = "git+https://github.com/arkpar/rust-secp256k1.git#321e6c22a83606d1875f89cb61c9cb37c7d249ae" +source = "git+https://github.com/arkpar/rust-secp256k1.git#45503e1de68d909b1862e3f2bdb9e1cdfdff3f1e" dependencies = [ "arrayvec 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", "gcc 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -171,7 +162,6 @@ name = "ethash" version = "0.9.99" dependencies = [ "log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lru-cache 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "sha3 0.1.0", ] @@ -179,6 +169,7 @@ dependencies = [ name = "ethcore" version = "0.9.99" dependencies = [ + "clippy 0.0.42 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "ethash 0.9.99", @@ -197,18 +188,15 @@ dependencies = [ name = "ethcore-rpc" version = "0.9.99" dependencies = [ -<<<<<<< HEAD -======= "clippy 0.0.42 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> rustup "ethcore 0.9.99", "ethcore-util 0.9.99", "ethsync 0.9.99", "jsonrpc-core 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-http-server 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_codegen 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_codegen 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "syntex 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", "target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -219,10 +207,7 @@ name = "ethcore-util" version = "0.9.99" dependencies = [ "arrayvec 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", -<<<<<<< HEAD -======= "clippy 0.0.42 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> rustup "crossbeam 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "elastic-array 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -238,7 +223,7 @@ dependencies = [ "rocksdb 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rust-crypto 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", "sha3 0.1.0", "slab 0.1.4 (git+https://github.com/arkpar/slab.git)", "target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -250,10 +235,7 @@ dependencies = [ name = "ethsync" version = "0.9.99" dependencies = [ -<<<<<<< HEAD -======= "clippy 0.0.42 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> rustup "env_logger 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "ethcore 0.9.99", "ethcore-util 0.9.99", @@ -367,8 +349,8 @@ name = "jsonrpc-core" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_codegen 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_codegen 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "syntex 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -416,11 +398,6 @@ name = "libc" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "linked-hash-map" -version = "0.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "log" version = "0.3.5" @@ -429,14 +406,6 @@ dependencies = [ "libc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "lru-cache" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "linked-hash-map 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "matches" version = "0.1.2" @@ -456,7 +425,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -522,7 +491,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "num" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -546,20 +515,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quasi" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "syntex_syntax 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syntex_syntax 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quasi_codegen" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aster 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", + "aster 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", + "syntex 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syntex_syntax 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -575,7 +544,7 @@ name = "regex" version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -613,7 +582,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "rustc_version" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", @@ -626,7 +595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "semver" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nom 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -634,22 +603,22 @@ dependencies = [ [[package]] name = "serde" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", + "num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_codegen" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aster 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi_codegen 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", + "aster 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", + "quasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quasi_codegen 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syntex 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syntex_syntax 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -657,8 +626,8 @@ name = "serde_json" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -700,6 +669,14 @@ dependencies = [ "syntex_syntax 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "syntex" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "syntex_syntax 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "syntex_syntax" version = "0.28.0" @@ -713,6 +690,19 @@ dependencies = [ "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "syntex_syntax" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", + "term 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "target_info" version = "0.1.0" @@ -757,7 +747,7 @@ name = "unicase" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rustc_version 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8b9924a54..6ffc3d2b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,6 @@ log = "0.3" env_logger = "0.3" rustc-serialize = "0.3" docopt = "0.6" -docopt_macros = "0.6" ctrlc = { git = "https://github.com/tomusdrw/rust-ctrlc.git" } clippy = { version = "0.0.42", optional = true } ethcore-util = { path = "util" } diff --git a/ethcore/src/lib.rs b/ethcore/src/lib.rs index 093906bd0..8c9fcaff1 100644 --- a/ethcore/src/lib.rs +++ b/ethcore/src/lib.rs @@ -15,8 +15,6 @@ // along with Parity. If not, see . #![warn(missing_docs)] -#![feature(cell_extras)] -#![feature(augmented_assignments)] #![cfg_attr(feature="dev", feature(plugin))] #![cfg_attr(feature="dev", plugin(clippy))] // TODO [todr] not really sure diff --git a/util/Cargo.toml b/util/Cargo.toml index 25626780f..ff3fbc5dc 100644 --- a/util/Cargo.toml +++ b/util/Cargo.toml @@ -6,9 +6,6 @@ name = "ethcore-util" version = "0.9.99" authors = ["Ethcore "] -[features] -default = [ "heapsize/nightly" ] - [dependencies] log = "0.3" env_logger = "0.3" @@ -36,4 +33,4 @@ igd = "0.4.2" [features] default = [] -dev = ["clippy"] \ No newline at end of file +dev = ["clippy"] diff --git a/util/src/hash.rs b/util/src/hash.rs index 2e6c565b4..924465e70 100644 --- a/util/src/hash.rs +++ b/util/src/hash.rs @@ -413,15 +413,6 @@ macro_rules! impl_hash { } } - /// Moving BitOrAssign - impl<'a> BitOrAssign<&'a $from> for $from { - fn bitor_assign(&mut self, rhs: &'a Self) { - for i in 0..$size { - self.0[i] = self.0[i] | rhs.0[i]; - } - } - } - /// BitAnd on references impl <'a> BitAnd for &'a $from { type Output = $from; diff --git a/util/src/lib.rs b/util/src/lib.rs index 0a2b0f4b4..ef76bb885 100644 --- a/util/src/lib.rs +++ b/util/src/lib.rs @@ -15,12 +15,8 @@ // along with Parity. If not, see . #![warn(missing_docs)] -#![feature(op_assign_traits)] -#![feature(augmented_assignments)] -#![feature(associated_consts)] #![cfg_attr(feature="dev", feature(plugin))] #![cfg_attr(feature="dev", plugin(clippy))] -#![feature(catch_panic)] // Clippy settings // TODO [todr] not really sure #![allow(needless_range_loop)] diff --git a/util/src/panics.rs b/util/src/panics.rs index 27dd605f0..bc22282d2 100644 --- a/util/src/panics.rs +++ b/util/src/panics.rs @@ -40,6 +40,18 @@ pub trait MayPanic { fn on_panic(&self, closure: F) where F: OnPanicListener; } +struct PanicGuard<'a> { + handler: &'a PanicHandler, +} + +impl<'a> Drop for PanicGuard<'a> { + fn drop(&mut self) { + if thread::panicking() { + self.handler.notify_all("Panic!".to_owned()); + } + } +} + /// Structure that allows to catch panics and notify listeners pub struct PanicHandler { listeners: Mutex>> @@ -63,16 +75,9 @@ impl PanicHandler { #[allow(deprecated)] // TODO [todr] catch_panic is deprecated but panic::recover has different bounds (not allowing mutex) pub fn catch_panic(&self, g: G) -> thread::Result where G: FnOnce() -> R + Send + 'static { - let result = thread::catch_panic(g); - - if let Err(ref e) = result { - let res = convert_to_string(e); - if let Some(r) = res { - self.notify_all(r); - } - } - - result + let guard = PanicGuard { handler: self }; + let result = g(); + Ok(result) } fn notify_all(&self, r: String) { diff --git a/util/src/rlp/bytes.rs b/util/src/rlp/bytes.rs index 3b25c09ae..305ec9088 100644 --- a/util/src/rlp/bytes.rs +++ b/util/src/rlp/bytes.rs @@ -232,12 +232,12 @@ impl_uint_from_bytes!(u64); impl_uint_from_bytes!(usize); macro_rules! impl_uint_from_bytes { - ($name: ident) => { + ($name: ident, $size: expr) => { impl FromBytes for $name { fn from_bytes(bytes: &[u8]) -> FromBytesResult<$name> { if !bytes.is_empty() && bytes[0] == 0 { Err(FromBytesError::ZeroPrefixedInt) - } else if bytes.len() <= $name::SIZE { + } else if bytes.len() <= $size { Ok($name::from(bytes)) } else { Err(FromBytesError::DataIsTooLong) @@ -247,8 +247,8 @@ macro_rules! impl_uint_from_bytes { } } -impl_uint_from_bytes!(U256); -impl_uint_from_bytes!(U128); +impl_uint_from_bytes!(U256, 256); +impl_uint_from_bytes!(U128, 128); impl FromBytes for T where T: FixedHash { fn from_bytes(bytes: &[u8]) -> FromBytesResult { diff --git a/util/src/rlp/untrusted_rlp.rs b/util/src/rlp/untrusted_rlp.rs index 463d5cb2f..957a09b61 100644 --- a/util/src/rlp/untrusted_rlp.rs +++ b/util/src/rlp/untrusted_rlp.rs @@ -429,7 +429,6 @@ impl Decodable for Option where T: Decodable { macro_rules! impl_array_decodable { ($index_type:ty, $len:expr ) => ( impl Decodable for [T; $len] where T: Decodable { - #[allow(len_zero)] fn decode(decoder: &D) -> Result where D: Decoder { let decoders = decoder.as_rlp(); diff --git a/util/src/uint.rs b/util/src/uint.rs index b3427f6bc..912088fb9 100644 --- a/util/src/uint.rs +++ b/util/src/uint.rs @@ -78,9 +78,6 @@ macro_rules! panic_on_overflow { /// Large, fixed-length unsigned integer type. pub trait Uint: Sized + Default + FromStr + From + FromJson + fmt::Debug + fmt::Display + PartialOrd + Ord + PartialEq + Eq + Hash { - /// Size of this type. - const SIZE: usize; - /// Returns new instance equalling zero. fn zero() -> Self; /// Returns new instance equalling one. @@ -148,8 +145,6 @@ macro_rules! construct_uint { pub struct $name(pub [u64; $n_words]); impl Uint for $name { - const SIZE: usize = $n_words * 8; - type FromDecStrErr = FromHexError; /// TODO: optimize, throw appropriate err @@ -634,66 +629,6 @@ macro_rules! construct_uint { // TODO: optimise and traitify. - impl<'a> AddAssign<&'a $name> for $name { - fn add_assign(&mut self, other: &'a Self) { - *self = self.add(*other); - } - } - - impl<'a> SubAssign<&'a $name> for $name { - fn sub_assign(&mut self, other: &'a Self) { - *self = self.sub(*other); - } - } - - impl<'a> MulAssign<&'a $name> for $name { - fn mul_assign(&mut self, other: &'a Self) { - *self = self.mul(*other); - } - } - - impl<'a> DivAssign<&'a $name> for $name { - fn div_assign(&mut self, other: &'a Self) { - *self = self.div(*other); - } - } - - impl<'a> RemAssign<&'a $name> for $name { - fn rem_assign(&mut self, other: &'a Self) { - *self = self.rem(*other); - } - } - - impl AddAssign<$name> for $name { - fn add_assign(&mut self, other: Self) { - *self = self.add(other); - } - } - - impl SubAssign<$name> for $name { - fn sub_assign(&mut self, other: Self) { - *self = self.sub(other); - } - } - - impl MulAssign<$name> for $name { - fn mul_assign(&mut self, other: Self) { - *self = self.mul(other); - } - } - - impl DivAssign<$name> for $name { - fn div_assign(&mut self, other: Self) { - *self = self.div(other); - } - } - - impl RemAssign<$name> for $name { - fn rem_assign(&mut self, other: Self) { - *self = self.rem(other); - } - } - impl BitAnd<$name> for $name { type Output = $name; @@ -964,37 +899,6 @@ mod tests { use uint::{Uint, U128, U256, U512}; use std::str::FromStr; - #[test] - pub fn assign_ops() { - let x: U256 = x!(69); - let y: U256 = x!(42); - { - let mut z = x; - z += y; - assert_eq!(z, x + y); - } - { - let mut z = x; - z -= y; - assert_eq!(z, x - y); - } - { - let mut z = x; - z *= y; - assert_eq!(z, x * y); - } - { - let mut z = x; - z /= y; - assert_eq!(z, x / y); - } - { - let mut z = x; - z %= y; - assert_eq!(z, x % y); - } - } - #[test] pub fn uint256_from() { let e = U256([10, 0, 0, 0]);