Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation issues with num #11

Closed
tilpner opened this issue Jul 20, 2019 · 4 comments
Closed

Compilation issues with num #11

tilpner opened this issue Jul 20, 2019 · 4 comments

Comments

@tilpner
Copy link
Contributor

tilpner commented Jul 20, 2019

First time using crate2nix, so user error is likely.

nix /tmp > crate2nix -V
crate2nix 0.4.0
nix /tmp > rustc -V
rustc 1.32.0
nix /tmp > cargo -V
cargo 1.32.0
nix /tmp > cargo new --bin numtest
     Created binary (application) `numtest` package
nix /tmp > cd numtest
nix /tmp/numtest > echo 'num = "0.2"' >> Cargo.toml
nix /tmp/numtest > crate2nix generate -n '<nixpkgs>'
Prefetching    1/8: https://crates.io/api/v1/crates/autocfg/0.1.5/download
Prefetching    2/8: https://crates.io/api/v1/crates/num/0.2.0/download
Prefetching    3/8: https://crates.io/api/v1/crates/num-bigint/0.2.2/download
Prefetching    4/8: https://crates.io/api/v1/crates/num-complex/0.2.3/download
Prefetching    5/8: https://crates.io/api/v1/crates/num-integer/0.1.41/download
Prefetching    6/8: https://crates.io/api/v1/crates/num-iter/0.1.39/download
Prefetching    7/8: https://crates.io/api/v1/crates/num-rational/0.2.2/download
Prefetching    8/8: https://crates.io/api/v1/crates/num-traits/0.2.8/download
Wrote hashes to ./crate-hashes.json.
Generated ./default.nix successfully.

nix /tmp/numtest > NIX_PATH=nixpkgs=channel:nixos-unstable nix-build --no-out-link -A rootCrate.build
these derivations will be built:
  /nix/store/z9nlbzmxsz6smr6l1yf1x1civh1x7ahl-rust_num-bigint-0.2.2.drv
  /nix/store/61bsd5gi3k53mc7sk3s966iyydk3p7rp-rust_num-rational-0.2.2.drv
  /nix/store/dpk4r1sp782hnj0mxxgk6yg7vy392cx3-rust_num-0.2.0.drv
  /nix/store/0sjm90mbycyx355l5qm993inll42swd8-rust_numtest-0.1.0.drv
building '/nix/store/z9nlbzmxsz6smr6l1yf1x1civh1x7ahl-rust_num-bigint-0.2.2.drv'...
unpacking sources
unpacking source archive /nix/store/dbbddfhjvlwm1hhllmlb42ilamaalqbd-num-bigint-0.2.2.tar.gz
source root is num-bigint-0.2.2.tar.gz
patching sources
configuring
Building build.rs (num-bigint)
Running rustc --crate-name build_script_build build.rs --crate-type bin -C opt-level=3 -C codegen-units=7 --edition 2015 --out-dir target/build/num-bigint --emit=dep-info,link -L dependency=target/buildDeps --cap-lints allow --color always
building
Building src/lib.rs (num-bigint)
Running rustc --crate-name num_bigint src/lib.rs --crate-type lib -C opt-level=3 -C codegen-units=7 --edition 2015 -C metadata=5267052fbf -C extra-filename=-5267052fbf --out-dir target/lib --emit=dep-info,link -L dependency=target/deps --extern num_integer=/nix/store/1cfg1aw253ks1l0xxs1nch5y88v297a4-rust_num-integer-0.1.41/lib/libnum_integer-92d5248289.rlib --extern num_traits=/nix/store/sfjpdhzv45crw4hd9ya0wdg949wkjhyz-rust_num-traits-0.2.8/lib/libnum_traits-bc00277194.rlib --cap-lints allow -L /build/num-bigint-0.2.2.tar.gz/target/build/num-bigint.out --cfg has_i128 --color always
error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
  --> src/lib.rs:91:5
   |
91 | use std::error::Error;
   |     ^^^ maybe a missing `extern crate std;`?
...
error: aborting due to 497 previous errors

Some errors occurred: E0405, E0412, E0425, E0432, E0433.
For more information about an error, try `rustc --explain E0405`.
builder for '/nix/store/z9nlbzmxsz6smr6l1yf1x1civh1x7ahl-rust_num-bigint-0.2.2.drv' failed with exit code 1
cannot build derivation '/nix/store/0sjm90mbycyx355l5qm993inll42swd8-rust_numtest-0.1.0.drv': 1 dependencies couldn't be built
error: build of '/nix/store/0sjm90mbycyx355l5qm993inll42swd8-rust_numtest-0.1.0.drv' failed
Full error

these derivations will be built:
  /nix/store/z9nlbzmxsz6smr6l1yf1x1civh1x7ahl-rust_num-bigint-0.2.2.drv
  /nix/store/61bsd5gi3k53mc7sk3s966iyydk3p7rp-rust_num-rational-0.2.2.drv
  /nix/store/dpk4r1sp782hnj0mxxgk6yg7vy392cx3-rust_num-0.2.0.drv
  /nix/store/0sjm90mbycyx355l5qm993inll42swd8-rust_numtest-0.1.0.drv
building '/nix/store/z9nlbzmxsz6smr6l1yf1x1civh1x7ahl-rust_num-bigint-0.2.2.drv'...
unpacking sources
unpacking source archive /nix/store/dbbddfhjvlwm1hhllmlb42ilamaalqbd-num-bigint-0.2.2.tar.gz
source root is num-bigint-0.2.2.tar.gz
patching sources
configuring
Building build.rs (num-bigint)
Running rustc --crate-name build_script_build build.rs --crate-type bin -C opt-level=3 -C codegen-units=7 --edition 2015 --out-dir target/build/num-bigint --emit=dep-info,link -L dependency=target/buildDeps --cap-lints allow --color always
building
Building src/lib.rs (num-bigint)
Running rustc --crate-name num_bigint src/lib.rs --crate-type lib -C opt-level=3 -C codegen-units=7 --edition 2015 -C metadata=5267052fbf -C extra-filename=-5267052fbf --out-dir target/lib --emit=dep-info,link -L dependency=target/deps --extern num_integer=/nix/store/1cfg1aw253ks1l0xxs1nch5y88v297a4-rust_num-integer-0.1.41/lib/libnum_integer-92d5248289.rlib --extern num_traits=/nix/store/sfjpdhzv45crw4hd9ya0wdg949wkjhyz-rust_num-traits-0.2.8/lib/libnum_traits-bc00277194.rlib --cap-lints allow -L /build/num-bigint-0.2.2.tar.gz/target/build/num-bigint.out --cfg has_i128 --color always
error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
  --> src/lib.rs:91:5
   |
91 | use std::error::Error;
   |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/bigint.rs:2:5
  |
2 | use std::ascii::AsciiExt;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/bigint.rs:3:5
  |
3 | use std::cmp::Ordering::{self, Equal, Greater, Less};
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/bigint.rs:4:5
  |
4 | use std::default::Default;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
  --> src/lib.rs:92:5
   |
92 | use std::fmt;
   |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/bigint.rs:6:5
  |
6 | use std::iter::{Product, Sum};
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
 --> src/bigint.rs:5:5
  |
5 | use std::fmt;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/bigint.rs:8:5
  |
8 | use std::ops::{
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
 --> src/bigint.rs:7:5
  |
7 | use std::mem;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
  --> src/bigint.rs:12:5
   |
12 | use std::str::{self, FromStr};
   |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
  --> src/bigint.rs:12:5
   |
12 | use std::str::{self, FromStr};
   |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
  --> src/bigint.rs:14:5
   |
14 | use std::{i128, u128};
   |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/biguint.rs:2:5
  |
2 | use std::ascii::AsciiExt;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/biguint.rs:3:5
  |
3 | use std::borrow::Cow;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
  --> src/bigint.rs:15:5
   |
15 | use std::{i64, u64};
   |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/biguint.rs:5:5
  |
5 | use std::cmp::Ordering::{self, Equal, Greater, Less};
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/biguint.rs:6:5
  |
6 | use std::default::Default;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
 --> src/biguint.rs:4:5
  |
4 | use std::cmp;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/biguint.rs:8:5
  |
8 | use std::iter::{Product, Sum};
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
 --> src/biguint.rs:7:5
  |
7 | use std::fmt;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
  --> src/biguint.rs:10:5
   |
10 | use std::ops::{
   |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
 --> src/biguint.rs:9:5
  |
9 | use std::mem;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
  --> src/biguint.rs:14:5
   |
14 | use std::str::{self, FromStr};
   |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
  --> src/biguint.rs:14:5
   |
14 | use std::str::{self, FromStr};
   |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
  --> src/biguint.rs:15:5
   |
15 | use std::{f32, f64};
   |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/algorithms.rs:1:5
  |
1 | use std::borrow::Cow;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
  --> src/biguint.rs:16:5
   |
16 | use std::{u64, u8};
   |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/algorithms.rs:3:5
  |
3 | use std::cmp::Ordering::{self, Equal, Greater, Less};
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
 --> src/algorithms.rs:4:5
  |
4 | use std::iter::repeat;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
 --> src/algorithms.rs:2:5
  |
2 | use std::cmp;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0432]: unresolved import `std`
 --> src/algorithms.rs:5:5
  |
5 | use std::mem;
  |     ^^^ maybe a missing `extern crate std;`?

error[E0433]: failed to resolve: use of undeclared type or module `BitAnd`
   --> src/bigint.rs:325:29
    |
325 | forward_val_val_binop!(impl BitAnd for BigInt, bitand);
    |                             ^^^^^^ use of undeclared type or module `BitAnd`

error[E0433]: failed to resolve: use of undeclared type or module `BitAnd`
   --> src/bigint.rs:326:29
    |
326 | forward_ref_val_binop!(impl BitAnd for BigInt, bitand);
    |                             ^^^^^^ use of undeclared type or module `BitAnd`

error[E0433]: failed to resolve: use of undeclared type or module `BitOr`
   --> src/bigint.rs:460:29
    |
460 | forward_val_val_binop!(impl BitOr for BigInt, bitor);
    |                             ^^^^^ use of undeclared type or module `BitOr`

error[E0433]: failed to resolve: use of undeclared type or module `BitOr`
   --> src/bigint.rs:461:29
    |
461 | forward_ref_val_binop!(impl BitOr for BigInt, bitor);
    |                             ^^^^^ use of undeclared type or module `BitOr`

error[E0433]: failed to resolve: use of undeclared type or module `BitXor`
   --> src/bigint.rs:612:48
    |
612 | forward_all_binop_to_val_ref_commutative!(impl BitXor for BigInt, bitxor);
    |                                                ^^^^^^ use of undeclared type or module `BitXor`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/bigint.rs:964:27
    |
964 | promote_all_scalars!(impl Add for BigInt, add);
    |                           ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/bigint.rs:966:55
    |
966 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u32> for BigInt, add);
    |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/bigint.rs:967:55
    |
967 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u64> for BigInt, add);
    |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/bigint.rs:969:55
    |
969 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u128> for BigInt, add);
    |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
    --> src/bigint.rs:1045:55
     |
1045 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<i32> for BigInt, add);
     |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
    --> src/bigint.rs:1046:55
     |
1046 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<i64> for BigInt, add);
     |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
    --> src/bigint.rs:1048:55
     |
1048 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<i128> for BigInt, add);
     |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
    --> src/bigint.rs:1193:27
     |
1193 | promote_all_scalars!(impl Sub for BigInt, sub);
     |                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
    --> src/bigint.rs:1195:43
     |
1195 | forward_all_scalar_binop_to_val_val!(impl Sub<u32> for BigInt, sub);
     |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
    --> src/bigint.rs:1196:43
     |
1196 | forward_all_scalar_binop_to_val_val!(impl Sub<u64> for BigInt, sub);
     |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
    --> src/bigint.rs:1198:43
     |
1198 | forward_all_scalar_binop_to_val_val!(impl Sub<u128> for BigInt, sub);
     |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
    --> src/bigint.rs:1301:43
     |
1301 | forward_all_scalar_binop_to_val_val!(impl Sub<i32> for BigInt, sub);
     |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
    --> src/bigint.rs:1302:43
     |
1302 | forward_all_scalar_binop_to_val_val!(impl Sub<i64> for BigInt, sub);
     |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
    --> src/bigint.rs:1304:43
     |
1304 | forward_all_scalar_binop_to_val_val!(impl Sub<i128> for BigInt, sub);
     |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
    --> src/bigint.rs:1416:36
     |
1416 | forward_all_binop_to_ref_ref!(impl Mul for BigInt, mul);
     |                                    ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
    --> src/bigint.rs:1435:27
     |
1435 | promote_all_scalars!(impl Mul for BigInt, mul);
     |                           ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
    --> src/bigint.rs:1437:55
     |
1437 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u32> for BigInt, mul);
     |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
    --> src/bigint.rs:1438:55
     |
1438 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u64> for BigInt, mul);
     |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
    --> src/bigint.rs:1440:55
     |
1440 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u128> for BigInt, mul);
     |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
    --> src/bigint.rs:1499:55
     |
1499 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<i32> for BigInt, mul);
     |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
    --> src/bigint.rs:1500:55
     |
1500 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<i64> for BigInt, mul);
     |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
    --> src/bigint.rs:1502:55
     |
1502 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<i128> for BigInt, mul);
     |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
    --> src/bigint.rs:1579:36
     |
1579 | forward_all_binop_to_ref_ref!(impl Div for BigInt, div);
     |                                    ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
    --> src/bigint.rs:1599:27
     |
1599 | promote_all_scalars!(impl Div for BigInt, div);
     |                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
    --> src/bigint.rs:1601:43
     |
1601 | forward_all_scalar_binop_to_val_val!(impl Div<u32> for BigInt, div);
     |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
    --> src/bigint.rs:1602:43
     |
1602 | forward_all_scalar_binop_to_val_val!(impl Div<u64> for BigInt, div);
     |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
    --> src/bigint.rs:1604:43
     |
1604 | forward_all_scalar_binop_to_val_val!(impl Div<u128> for BigInt, div);
     |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
    --> src/bigint.rs:1693:43
     |
1693 | forward_all_scalar_binop_to_val_val!(impl Div<i32> for BigInt, div);
     |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
    --> src/bigint.rs:1694:43
     |
1694 | forward_all_scalar_binop_to_val_val!(impl Div<i64> for BigInt, div);
     |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
    --> src/bigint.rs:1696:43
     |
1696 | forward_all_scalar_binop_to_val_val!(impl Div<i128> for BigInt, div);
     |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/bigint.rs:1815:36
     |
1815 | forward_all_binop_to_ref_ref!(impl Rem for BigInt, rem);
     |                                    ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/bigint.rs:1835:27
     |
1835 | promote_all_scalars!(impl Rem for BigInt, rem);
     |                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/bigint.rs:1837:43
     |
1837 | forward_all_scalar_binop_to_val_val!(impl Rem<u32> for BigInt, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/bigint.rs:1838:43
     |
1838 | forward_all_scalar_binop_to_val_val!(impl Rem<u64> for BigInt, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/bigint.rs:1840:43
     |
1840 | forward_all_scalar_binop_to_val_val!(impl Rem<u128> for BigInt, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/bigint.rs:1929:43
     |
1929 | forward_all_scalar_binop_to_val_val!(impl Rem<i32> for BigInt, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/bigint.rs:1930:43
     |
1930 | forward_all_scalar_binop_to_val_val!(impl Rem<i64> for BigInt, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/bigint.rs:1932:43
     |
1932 | forward_all_scalar_binop_to_val_val!(impl Rem<i128> for BigInt, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
    --> src/bigint.rs:2630:30
     |
2630 |             let mut digits = Vec::from(digits);
     |                              ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
    --> src/bigint.rs:2651:30
     |
2651 |             let mut digits = Vec::from(digits);
     |                              ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `String`
    --> src/bigint.rs:2823:18
     |
2823 |         unsafe { String::from_utf8_unchecked(v) }
     |                  ^^^^^^ use of undeclared type or module `String`

error: cannot find macro `vec!` in this scope
   --> src/biguint.rs:429:22
    |
429 |         BigUint::new(vec![1])
    |                      ^^^

error: cannot find macro `vec!` in this scope
    --> src/biguint.rs:1788:9
     |
1788 |         vec![0]
     |         ^^^

error: cannot find macro `vec!` in this scope
    --> src/biguint.rs:2034:13
     |
2034 |             vec![0]
     |             ^^^

error: cannot find macro `vec!` in this scope
   --> src/algorithms.rs:316:37
    |
316 |         let mut p = BigUint { data: vec![0; len] };
    |                                     ^^^

error: cannot find macro `vec!` in this scope
   --> src/algorithms.rs:481:36
    |
481 |     let mut prod = BigUint { data: vec![0; len] };
    |                                    ^^^

error: cannot find macro `vec!` in this scope
   --> src/algorithms.rs:544:15
    |
544 |         data: vec![0; q_len],
    |               ^^^

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
   --> src/algorithms.rs:552:15
    |
552 |         data: Vec::with_capacity(2),
    |               ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
   --> src/algorithms.rs:616:28
    |
616 |             let mut data = Vec::with_capacity(len);
    |                            ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Cow`
   --> src/algorithms.rs:646:9
    |
646 |         Cow::Borrowed(n) => n.data[n_unit..].to_vec(),
    |         ^^^ use of undeclared type or module `Cow`

error[E0433]: failed to resolve: use of undeclared type or module `Cow`
   --> src/algorithms.rs:647:9
    |
647 |         Cow::Owned(mut n) => {
    |         ^^^ use of undeclared type or module `Cow`

error: cannot find macro `vec!` in this scope
   --> src/monty.rs:109:17
    |
109 |     let mut v = vec![0; modulus.data.len()];
    |                 ^^^

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
   --> src/biguint.rs:151:20
    |
151 |     let mut data = Vec::with_capacity(big_digits);
    |                    ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
   --> src/biguint.rs:187:20
    |
187 |     let mut data = Vec::with_capacity(big_digits as usize);
    |                    ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
   --> src/biguint.rs:242:21
    |
242 |         let mut v = Vec::with_capacity(s.len());
    |                     ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `BitAnd`
   --> src/biguint.rs:274:29
    |
274 | forward_val_val_binop!(impl BitAnd for BigUint, bitand);
    |                             ^^^^^^ use of undeclared type or module `BitAnd`

error[E0433]: failed to resolve: use of undeclared type or module `BitAnd`
   --> src/biguint.rs:275:29
    |
275 | forward_ref_val_binop!(impl BitAnd for BigUint, bitand);
    |                             ^^^^^^ use of undeclared type or module `BitAnd`

error[E0433]: failed to resolve: use of undeclared type or module `BitOr`
   --> src/biguint.rs:315:48
    |
315 | forward_all_binop_to_val_ref_commutative!(impl BitOr for BigUint, bitor);
    |                                                ^^^^^ use of undeclared type or module `BitOr`

error[E0433]: failed to resolve: use of undeclared type or module `BitXor`
   --> src/biguint.rs:339:48
    |
339 | forward_all_binop_to_val_ref_commutative!(impl BitXor for BigUint, bitxor);
    |                                                ^^^^^^ use of undeclared type or module `BitXor`

error[E0433]: failed to resolve: use of undeclared type or module `Cow`
   --> src/biguint.rs:369:21
    |
369 |         biguint_shl(Cow::Owned(self), rhs)
    |                     ^^^ use of undeclared type or module `Cow`

error[E0433]: failed to resolve: use of undeclared type or module `Cow`
   --> src/biguint.rs:377:21
    |
377 |         biguint_shl(Cow::Borrowed(self), rhs)
    |                     ^^^ use of undeclared type or module `Cow`

error[E0433]: failed to resolve: use of undeclared type or module `Cow`
   --> src/biguint.rs:394:21
    |
394 |         biguint_shr(Cow::Owned(self), rhs)
    |                     ^^^ use of undeclared type or module `Cow`

error[E0433]: failed to resolve: use of undeclared type or module `Cow`
   --> src/biguint.rs:402:21
    |
402 |         biguint_shr(Cow::Borrowed(self), rhs)
    |                     ^^^ use of undeclared type or module `Cow`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
   --> src/biguint.rs:417:22
    |
417 |         BigUint::new(Vec::new())
    |                      ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/biguint.rs:492:48
    |
492 | forward_all_binop_to_val_ref_commutative!(impl Add for BigUint, add);
    |                                                ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/biguint.rs:520:32
    |
520 | promote_unsigned_scalars!(impl Add for BigUint, add);
    |                                ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/biguint.rs:522:55
    |
522 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u32> for BigUint, add);
    |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/biguint.rs:523:55
    |
523 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u64> for BigUint, add);
    |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Add`
   --> src/biguint.rs:525:55
    |
525 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u128> for BigUint, add);
    |                                                       ^^^ use of undeclared type or module `Add`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
   --> src/biguint.rs:621:29
    |
621 | forward_val_val_binop!(impl Sub for BigUint, sub);
    |                             ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
   --> src/biguint.rs:622:29
    |
622 | forward_ref_ref_binop!(impl Sub for BigUint, sub);
    |                             ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
   --> src/biguint.rs:658:32
    |
658 | promote_unsigned_scalars!(impl Sub for BigUint, sub);
    |                                ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
   --> src/biguint.rs:660:43
    |
660 | forward_all_scalar_binop_to_val_val!(impl Sub<u32> for BigUint, sub);
    |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
   --> src/biguint.rs:661:43
    |
661 | forward_all_scalar_binop_to_val_val!(impl Sub<u64> for BigUint, sub);
    |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Sub`
   --> src/biguint.rs:663:43
    |
663 | forward_all_scalar_binop_to_val_val!(impl Sub<u128> for BigUint, sub);
    |                                           ^^^ use of undeclared type or module `Sub`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
   --> src/biguint.rs:764:36
    |
764 | forward_all_binop_to_ref_ref!(impl Mul for BigUint, mul);
    |                                    ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
   --> src/biguint.rs:782:32
    |
782 | promote_unsigned_scalars!(impl Mul for BigUint, mul);
    |                                ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
   --> src/biguint.rs:784:55
    |
784 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u32> for BigUint, mul);
    |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
   --> src/biguint.rs:785:55
    |
785 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u64> for BigUint, mul);
    |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Mul`
   --> src/biguint.rs:787:55
    |
787 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u128> for BigUint, mul);
    |                                                       ^^^ use of undeclared type or module `Mul`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
   --> src/biguint.rs:860:36
    |
860 | forward_all_binop_to_ref_ref!(impl Div for BigUint, div);
    |                                    ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
   --> src/biguint.rs:879:32
    |
879 | promote_unsigned_scalars!(impl Div for BigUint, div);
    |                                ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
   --> src/biguint.rs:881:43
    |
881 | forward_all_scalar_binop_to_val_val!(impl Div<u32> for BigUint, div);
    |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
   --> src/biguint.rs:882:43
    |
882 | forward_all_scalar_binop_to_val_val!(impl Div<u64> for BigUint, div);
    |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Div`
   --> src/biguint.rs:884:43
    |
884 | forward_all_scalar_binop_to_val_val!(impl Div<u128> for BigUint, div);
    |                                           ^^^ use of undeclared type or module `Div`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
   --> src/biguint.rs:984:36
    |
984 | forward_all_binop_to_ref_ref!(impl Rem for BigUint, rem);
    |                                    ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/biguint.rs:1003:32
     |
1003 | promote_unsigned_scalars!(impl Rem for BigUint, rem);
     |                                ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/biguint.rs:1005:43
     |
1005 | forward_all_scalar_binop_to_val_val!(impl Rem<u32> for BigUint, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/biguint.rs:1006:43
     |
1006 | forward_all_scalar_binop_to_val_val!(impl Rem<u64> for BigUint, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Rem`
    --> src/biguint.rs:1008:43
     |
1008 | forward_all_scalar_binop_to_val_val!(impl Rem<u128> for BigUint, rem);
     |                                           ^^^ use of undeclared type or module `Rem`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
    --> src/biguint.rs:1698:19
     |
1698 |     let mut res = Vec::with_capacity(digits);
     |                   ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
    --> src/biguint.rs:1722:19
     |
1722 |     let mut res = Vec::with_capacity(digits);
     |                   ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
    --> src/biguint.rs:1762:19
     |
1762 |     let mut res = Vec::with_capacity(radix_digits as usize);
     |                   ^^^ use of undeclared type or module `Vec`

error: cannot find macro `vec!` in this scope
    --> src/biguint.rs:1810:16
     |
1810 |         return vec![b'0'];
     |                ^^^

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
    --> src/biguint.rs:1947:25
     |
1947 |             let mut v = Vec::from(buf);
     |                         ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `Vec`
    --> src/biguint.rs:1996:25
     |
1996 |             let mut v = Vec::from(buf);
     |                         ^^^ use of undeclared type or module `Vec`

error[E0433]: failed to resolve: use of undeclared type or module `String`
    --> src/biguint.rs:2055:18
     |
2055 |         unsafe { String::from_utf8_unchecked(v) }
     |                  ^^^^^^ use of undeclared type or module `String`

error[E0405]: cannot find trait `Neg` in this scope
  --> src/bigint.rs:45:6
   |
45 | impl Neg for Sign {
   |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
2  | use core::ops::Neg;
   |

error[E0405]: cannot find trait `Mul` in this scope
  --> src/bigint.rs:59:6
   |
59 | impl Mul<Sign> for Sign {
   |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
2  | use core::ops::Mul;
   |

error[E0425]: cannot find value `Equal` in this scope
   --> src/bigint.rs:136:28
    |
136 |         self.cmp(other) == Equal
    |                            ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::cmp::Ordering::Equal;
    |

error[E0412]: cannot find type `Ordering` in this scope
   --> src/bigint.rs:144:53
    |
144 |     fn partial_cmp(&self, other: &BigInt) -> Option<Ordering> {
    |                                                     ^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
    |
2   | use core::cmp::Ordering;
    |
2   | use core::sync::atomic::Ordering;
    |

error[E0412]: cannot find type `Ordering` in this scope
   --> src/bigint.rs:151:38
    |
151 |     fn cmp(&self, other: &BigInt) -> Ordering {
    |                                      ^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
    |
2   | use core::cmp::Ordering;
    |
2   | use core::sync::atomic::Ordering;
    |

error[E0425]: cannot find value `Equal` in this scope
   --> src/bigint.rs:153:20
    |
153 |         if scmp != Equal {
    |                    ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::cmp::Ordering::Equal;
    |

error[E0425]: cannot find value `Equal` in this scope
   --> src/bigint.rs:158:23
    |
158 |             NoSign => Equal,
    |                       ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::cmp::Ordering::Equal;
    |

error[E0405]: cannot find trait `Not` in this scope
   --> src/bigint.rs:232:6
    |
232 | impl Not for BigInt {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Not;
    |

error[E0405]: cannot find trait `Not` in this scope
   --> src/bigint.rs:250:10
    |
250 | impl<'a> Not for &'a BigInt {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Not;
    |

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:264:27
    |
264 | fn bitand_pos_neg(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                           ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:276:27
    |
276 | fn bitand_neg_pos(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                           ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:295:27
    |
295 | fn bitand_neg_neg(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                           ^^^ not found in this scope

error[E0405]: cannot find trait `BitAnd` in this scope
   --> src/bigint.rs:325:29
    |
325 | forward_val_val_binop!(impl BitAnd for BigInt, bitand);
    |                             ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAnd;
    |

error[E0405]: cannot find trait `BitAnd` in this scope
   --> src/bigint.rs:326:29
    |
326 | forward_ref_val_binop!(impl BitAnd for BigInt, bitand);
    |                             ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAnd;
    |

error[E0405]: cannot find trait `BitAnd` in this scope
   --> src/bigint.rs:330:14
    |
330 | impl<'a, 'b> BitAnd<&'b BigInt> for &'a BigInt {
    |              ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAnd;
    |

error[E0405]: cannot find trait `BitAnd` in this scope
   --> src/bigint.rs:352:10
    |
352 | impl<'a> BitAnd<&'a BigInt> for BigInt {
    |          ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAnd;
    |

error[E0405]: cannot find trait `BitAndAssign` in this scope
   --> src/bigint.rs:362:26
    |
362 | forward_val_assign!(impl BitAndAssign for BigInt, bitand_assign);
    |                          ^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAndAssign;
    |

error[E0405]: cannot find trait `BitAndAssign` in this scope
   --> src/bigint.rs:364:10
    |
364 | impl<'a> BitAndAssign<&'a BigInt> for BigInt {
    |          ^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAndAssign;
    |

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:395:26
    |
395 | fn bitor_pos_neg(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                          ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:420:26
    |
420 | fn bitor_neg_pos(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                          ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:442:26
    |
442 | fn bitor_neg_neg(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                          ^^^ not found in this scope

error[E0405]: cannot find trait `BitOr` in this scope
   --> src/bigint.rs:460:29
    |
460 | forward_val_val_binop!(impl BitOr for BigInt, bitor);
    |                             ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOr;
    |

error[E0405]: cannot find trait `BitOr` in this scope
   --> src/bigint.rs:461:29
    |
461 | forward_ref_val_binop!(impl BitOr for BigInt, bitor);
    |                             ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOr;
    |

error[E0405]: cannot find trait `BitOr` in this scope
   --> src/bigint.rs:465:14
    |
465 | impl<'a, 'b> BitOr<&'b BigInt> for &'a BigInt {
    |              ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOr;
    |

error[E0405]: cannot find trait `BitOr` in this scope
   --> src/bigint.rs:488:10
    |
488 | impl<'a> BitOr<&'a BigInt> for BigInt {
    |          ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOr;
    |

error[E0405]: cannot find trait `BitOrAssign` in this scope
   --> src/bigint.rs:498:26
    |
498 | forward_val_assign!(impl BitOrAssign for BigInt, bitor_assign);
    |                          ^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOrAssign;
    |

error[E0405]: cannot find trait `BitOrAssign` in this scope
   --> src/bigint.rs:500:10
    |
500 | impl<'a> BitOrAssign<&'a BigInt> for BigInt {
    |          ^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOrAssign;
    |

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:526:27
    |
526 | fn bitxor_pos_neg(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                           ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:555:27
    |
555 | fn bitxor_neg_pos(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                           ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
   --> src/bigint.rs:584:27
    |
584 | fn bitxor_neg_neg(a: &mut Vec<BigDigit>, b: &[BigDigit]) {
    |                           ^^^ not found in this scope

error[E0405]: cannot find trait `BitXor` in this scope
   --> src/bigint.rs:612:48
    |
612 | forward_all_binop_to_val_ref_commutative!(impl BitXor for BigInt, bitxor);
    |                                                ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitXor;
    |

error[E0405]: cannot find trait `BitXor` in this scope
   --> src/bigint.rs:614:10
    |
614 | impl<'a> BitXor<&'a BigInt> for BigInt {
    |          ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitXor;
    |

error[E0405]: cannot find trait `BitXorAssign` in this scope
   --> src/bigint.rs:624:26
    |
624 | forward_val_assign!(impl BitXorAssign for BigInt, bitxor_assign);
    |                          ^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitXorAssign;
    |

error[E0405]: cannot find trait `BitXorAssign` in this scope
   --> src/bigint.rs:626:10
    |
626 | impl<'a> BitXorAssign<&'a BigInt> for BigInt {
    |          ^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitXorAssign;
    |

error[E0405]: cannot find trait `FromStr` in this scope
   --> src/bigint.rs:655:6
    |
655 | impl FromStr for BigInt {
    |      ^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::str::FromStr;
    |

error[E0405]: cannot find trait `Shl` in this scope
   --> src/bigint.rs:684:6
    |
684 | impl Shl<usize> for BigInt {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Shl;
    |

error[E0405]: cannot find trait `Shl` in this scope
   --> src/bigint.rs:694:10
    |
694 | impl<'a> Shl<usize> for &'a BigInt {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Shl;
    |

error[E0405]: cannot find trait `ShlAssign` in this scope
   --> src/bigint.rs:703:6
    |
703 | impl ShlAssign<usize> for BigInt {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::ShlAssign;
    |

error[E0405]: cannot find trait `Shr` in this scope
   --> src/bigint.rs:719:6
    |
719 | impl Shr<usize> for BigInt {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Shr;
    |

error[E0405]: cannot find trait `Shr` in this scope
   --> src/bigint.rs:729:10
    |
729 | impl<'a> Shr<usize> for &'a BigInt {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Shr;
    |

error[E0405]: cannot find trait `ShrAssign` in this scope
   --> src/bigint.rs:740:6
    |
740 | impl ShrAssign<usize> for BigInt {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::ShrAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:912:14
    |
912 | impl<'a, 'b> Add<&'b BigInt> for &'a BigInt {
    |              ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:928:10
    |
928 | impl<'a> Add<BigInt> for &'a BigInt {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:937:10
    |
937 | impl<'a> Add<&'a BigInt> for BigInt {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:946:6
    |
946 | impl Add<BigInt> for BigInt {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/bigint.rs:955:10
    |
955 | impl<'a> AddAssign<&'a BigInt> for BigInt {
    |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/bigint.rs:962:26
    |
962 | forward_val_assign!(impl AddAssign for BigInt, add_assign);
    |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:964:27
    |
964 | promote_all_scalars!(impl Add for BigInt, add);
    |                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/bigint.rs:965:34
    |
965 | promote_all_scalars_assign!(impl AddAssign for BigInt, add_assign);
    |                                  ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:966:55
    |
966 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u32> for BigInt, add);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:967:55
    |
967 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u64> for BigInt, add);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:969:55
    |
969 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u128> for BigInt, add);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:971:6
    |
971 | impl Add<u32> for BigInt {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/bigint.rs:987:6
    |
987 | impl AddAssign<u32> for BigInt {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/bigint.rs:995:6
    |
995 | impl Add<u64> for BigInt {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
    --> src/bigint.rs:1011:6
     |
1011 | impl AddAssign<u64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::AddAssign;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/bigint.rs:1020:6
     |
1020 | impl Add<u128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `AddAssign` in this scope
    --> src/bigint.rs:1037:6
     |
1037 | impl AddAssign<u128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::AddAssign;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/bigint.rs:1045:55
     |
1045 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<i32> for BigInt, add);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/bigint.rs:1046:55
     |
1046 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<i64> for BigInt, add);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/bigint.rs:1048:55
     |
1048 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<i128> for BigInt, add);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/bigint.rs:1050:6
     |
1050 | impl Add<i32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `AddAssign` in this scope
    --> src/bigint.rs:1062:6
     |
1062 | impl AddAssign<i32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::AddAssign;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/bigint.rs:1073:6
     |
1073 | impl Add<i64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `AddAssign` in this scope
    --> src/bigint.rs:1085:6
     |
1085 | impl AddAssign<i64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::AddAssign;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/bigint.rs:1097:6
     |
1097 | impl Add<i128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `AddAssign` in this scope
    --> src/bigint.rs:1110:6
     |
1110 | impl AddAssign<i128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::AddAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1141:14
     |
1141 | impl<'a, 'b> Sub<&'b BigInt> for &'a BigInt {
     |              ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1157:10
     |
1157 | impl<'a> Sub<BigInt> for &'a BigInt {
     |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1166:10
     |
1166 | impl<'a> Sub<&'a BigInt> for BigInt {
     |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1175:6
     |
1175 | impl Sub<BigInt> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1184:10
     |
1184 | impl<'a> SubAssign<&'a BigInt> for BigInt {
     |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1191:26
     |
1191 | forward_val_assign!(impl SubAssign for BigInt, sub_assign);
     |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1193:27
     |
1193 | promote_all_scalars!(impl Sub for BigInt, sub);
     |                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1194:34
     |
1194 | promote_all_scalars_assign!(impl SubAssign for BigInt, sub_assign);
     |                                  ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1195:43
     |
1195 | forward_all_scalar_binop_to_val_val!(impl Sub<u32> for BigInt, sub);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1196:43
     |
1196 | forward_all_scalar_binop_to_val_val!(impl Sub<u64> for BigInt, sub);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1198:43
     |
1198 | forward_all_scalar_binop_to_val_val!(impl Sub<u128> for BigInt, sub);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1200:6
     |
1200 | impl Sub<u32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1216:6
     |
1216 | impl SubAssign<u32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1224:6
     |
1224 | impl Sub<BigInt> for u32 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1233:6
     |
1233 | impl Sub<BigInt> for u64 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1242:6
     |
1242 | impl Sub<BigInt> for u128 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1251:6
     |
1251 | impl Sub<u64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1267:6
     |
1267 | impl SubAssign<u64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1276:6
     |
1276 | impl Sub<u128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1293:6
     |
1293 | impl SubAssign<u128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1301:43
     |
1301 | forward_all_scalar_binop_to_val_val!(impl Sub<i32> for BigInt, sub);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1302:43
     |
1302 | forward_all_scalar_binop_to_val_val!(impl Sub<i64> for BigInt, sub);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1304:43
     |
1304 | forward_all_scalar_binop_to_val_val!(impl Sub<i128> for BigInt, sub);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1306:6
     |
1306 | impl Sub<i32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1318:6
     |
1318 | impl SubAssign<i32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1329:6
     |
1329 | impl Sub<BigInt> for i32 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1342:6
     |
1342 | impl Sub<i64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1354:6
     |
1354 | impl SubAssign<i64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1365:6
     |
1365 | impl Sub<BigInt> for i64 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1379:6
     |
1379 | impl Sub<i128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `SubAssign` in this scope
    --> src/bigint.rs:1392:6
     |
1392 | impl SubAssign<i128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::SubAssign;
     |

error[E0405]: cannot find trait `Sub` in this scope
    --> src/bigint.rs:1403:6
     |
1403 | impl Sub<BigInt> for i128 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Sub;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1416:36
     |
1416 | forward_all_binop_to_ref_ref!(impl Mul for BigInt, mul);
     |                                    ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1418:14
     |
1418 | impl<'a, 'b> Mul<&'b BigInt> for &'a BigInt {
     |              ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1427:10
     |
1427 | impl<'a> MulAssign<&'a BigInt> for BigInt {
     |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1433:26
     |
1433 | forward_val_assign!(impl MulAssign for BigInt, mul_assign);
     |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1435:27
     |
1435 | promote_all_scalars!(impl Mul for BigInt, mul);
     |                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1436:34
     |
1436 | promote_all_scalars_assign!(impl MulAssign for BigInt, mul_assign);
     |                                  ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1437:55
     |
1437 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u32> for BigInt, mul);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1438:55
     |
1438 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u64> for BigInt, mul);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1440:55
     |
1440 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u128> for BigInt, mul);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1442:6
     |
1442 | impl Mul<u32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1451:6
     |
1451 | impl MulAssign<u32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1461:6
     |
1461 | impl Mul<u64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1470:6
     |
1470 | impl MulAssign<u64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1480:6
     |
1480 | impl Mul<u128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1489:6
     |
1489 | impl MulAssign<u128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1499:55
     |
1499 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<i32> for BigInt, mul);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1500:55
     |
1500 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<i64> for BigInt, mul);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1502:55
     |
1502 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<i128> for BigInt, mul);
     |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1504:6
     |
1504 | impl Mul<i32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1517:6
     |
1517 | impl MulAssign<i32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1529:6
     |
1529 | impl Mul<i64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1542:6
     |
1542 | impl MulAssign<i64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/bigint.rs:1554:6
     |
1554 | impl Mul<i128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0405]: cannot find trait `MulAssign` in this scope
    --> src/bigint.rs:1567:6
     |
1567 | impl MulAssign<i128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::MulAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1579:36
     |
1579 | forward_all_binop_to_ref_ref!(impl Div for BigInt, div);
     |                                    ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1581:14
     |
1581 | impl<'a, 'b> Div<&'b BigInt> for &'a BigInt {
     |              ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1591:10
     |
1591 | impl<'a> DivAssign<&'a BigInt> for BigInt {
     |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1597:26
     |
1597 | forward_val_assign!(impl DivAssign for BigInt, div_assign);
     |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1599:27
     |
1599 | promote_all_scalars!(impl Div for BigInt, div);
     |                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1600:34
     |
1600 | promote_all_scalars_assign!(impl DivAssign for BigInt, div_assign);
     |                                  ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1601:43
     |
1601 | forward_all_scalar_binop_to_val_val!(impl Div<u32> for BigInt, div);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1602:43
     |
1602 | forward_all_scalar_binop_to_val_val!(impl Div<u64> for BigInt, div);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1604:43
     |
1604 | forward_all_scalar_binop_to_val_val!(impl Div<u128> for BigInt, div);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1606:6
     |
1606 | impl Div<u32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1615:6
     |
1615 | impl DivAssign<u32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1625:6
     |
1625 | impl Div<BigInt> for u32 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1634:6
     |
1634 | impl Div<u64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1643:6
     |
1643 | impl DivAssign<u64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1653:6
     |
1653 | impl Div<BigInt> for u64 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1663:6
     |
1663 | impl Div<u128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1673:6
     |
1673 | impl DivAssign<u128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1684:6
     |
1684 | impl Div<BigInt> for u128 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1693:43
     |
1693 | forward_all_scalar_binop_to_val_val!(impl Div<i32> for BigInt, div);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1694:43
     |
1694 | forward_all_scalar_binop_to_val_val!(impl Div<i64> for BigInt, div);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1696:43
     |
1696 | forward_all_scalar_binop_to_val_val!(impl Div<i128> for BigInt, div);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1698:6
     |
1698 | impl Div<i32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1711:6
     |
1711 | impl DivAssign<i32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1723:6
     |
1723 | impl Div<BigInt> for i32 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1736:6
     |
1736 | impl Div<i64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1749:6
     |
1749 | impl DivAssign<i64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1761:6
     |
1761 | impl Div<BigInt> for i64 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1775:6
     |
1775 | impl Div<i128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `DivAssign` in this scope
    --> src/bigint.rs:1789:6
     |
1789 | impl DivAssign<i128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::DivAssign;
     |

error[E0405]: cannot find trait `Div` in this scope
    --> src/bigint.rs:1802:6
     |
1802 | impl Div<BigInt> for i128 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Div;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1815:36
     |
1815 | forward_all_binop_to_ref_ref!(impl Rem for BigInt, rem);
     |                                    ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1817:14
     |
1817 | impl<'a, 'b> Rem<&'b BigInt> for &'a BigInt {
     |              ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:1827:10
     |
1827 | impl<'a> RemAssign<&'a BigInt> for BigInt {
     |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:1833:26
     |
1833 | forward_val_assign!(impl RemAssign for BigInt, rem_assign);
     |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1835:27
     |
1835 | promote_all_scalars!(impl Rem for BigInt, rem);
     |                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:1836:34
     |
1836 | promote_all_scalars_assign!(impl RemAssign for BigInt, rem_assign);
     |                                  ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1837:43
     |
1837 | forward_all_scalar_binop_to_val_val!(impl Rem<u32> for BigInt, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1838:43
     |
1838 | forward_all_scalar_binop_to_val_val!(impl Rem<u64> for BigInt, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1840:43
     |
1840 | forward_all_scalar_binop_to_val_val!(impl Rem<u128> for BigInt, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1842:6
     |
1842 | impl Rem<u32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:1851:6
     |
1851 | impl RemAssign<u32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1861:6
     |
1861 | impl Rem<BigInt> for u32 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1870:6
     |
1870 | impl Rem<u64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:1879:6
     |
1879 | impl RemAssign<u64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1889:6
     |
1889 | impl Rem<BigInt> for u64 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1899:6
     |
1899 | impl Rem<u128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:1909:6
     |
1909 | impl RemAssign<u128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1920:6
     |
1920 | impl Rem<BigInt> for u128 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1929:43
     |
1929 | forward_all_scalar_binop_to_val_val!(impl Rem<i32> for BigInt, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1930:43
     |
1930 | forward_all_scalar_binop_to_val_val!(impl Rem<i64> for BigInt, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1932:43
     |
1932 | forward_all_scalar_binop_to_val_val!(impl Rem<i128> for BigInt, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1934:6
     |
1934 | impl Rem<i32> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:1947:6
     |
1947 | impl RemAssign<i32> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1958:6
     |
1958 | impl Rem<BigInt> for i32 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1971:6
     |
1971 | impl Rem<i64> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:1984:6
     |
1984 | impl RemAssign<i64> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:1995:6
     |
1995 | impl Rem<BigInt> for i64 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:2009:6
     |
2009 | impl Rem<i128> for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/bigint.rs:2022:6
     |
2022 | impl RemAssign<i128> for BigInt {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/bigint.rs:2033:6
     |
2033 | impl Rem<BigInt> for i128 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Neg` in this scope
    --> src/bigint.rs:2046:6
     |
2046 | impl Neg for BigInt {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Neg;
     |

error[E0405]: cannot find trait `Neg` in this scope
    --> src/bigint.rs:2056:10
     |
2056 | impl<'a> Neg for &'a BigInt {
     |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Neg;
     |

error[E0412]: cannot find type `Vec` in this scope
    --> src/bigint.rs:2427:38
     |
2427 |     fn digits_mut(&mut self) -> &mut Vec<BigDigit> {
     |                                      ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/bigint.rs:2543:36
     |
2543 |     pub fn new(sign: Sign, digits: Vec<u32>) -> BigInt {
     |                                    ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/bigint.rs:2728:41
     |
2728 |     pub fn to_bytes_be(&self) -> (Sign, Vec<u8>) {
     |                                         ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/bigint.rs:2743:41
     |
2743 |     pub fn to_bytes_le(&self) -> (Sign, Vec<u8>) {
     |                                         ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/bigint.rs:2758:41
     |
2758 |     pub fn to_signed_bytes_be(&self) -> Vec<u8> {
     |                                         ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/bigint.rs:2786:41
     |
2786 |     pub fn to_signed_bytes_le(&self) -> Vec<u8> {
     |                                         ^^^ not found in this scope

error[E0412]: cannot find type `String` in this scope
    --> src/bigint.rs:2815:47
     |
2815 |     pub fn to_str_radix(&self, radix: u32) -> String {
     |                                               ^^^^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/bigint.rs:2841:53
     |
2841 |     pub fn to_radix_be(&self, radix: u32) -> (Sign, Vec<u8>) {
     |                                                     ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/bigint.rs:2860:53
     |
2860 |     pub fn to_radix_le(&self, radix: u32) -> (Sign, Vec<u8>) {
     |                                                     ^^^ not found in this scope

error[E0405]: cannot find trait `Sum` in this scope
    --> src/macros.rs:334:17
     |
334  |         impl<T> Sum<T> for $res
     |                 ^^^
     | 
    ::: src/bigint.rs:2969:1
     |
2969 | impl_sum_iter_type!(BigInt);
     | ---------------------------- in this macro invocation
help: a trait with a similar name exists
     |
334  |         impl<T> Num<T> for $res
     |                 ^^^
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::iter::Sum;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/macros.rs:336:19
     |
336  |             $res: Add<T, Output = $res>,
     |                   ^^^ not found in this scope
     | 
    ::: src/bigint.rs:2969:1
     |
2969 | impl_sum_iter_type!(BigInt);
     | ---------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `Product` in this scope
    --> src/macros.rs:350:17
     |
350  |         impl<T> Product<T> for $res
     |                 ^^^^^^^ not found in this scope
     | 
    ::: src/bigint.rs:2970:1
     |
2970 | impl_product_iter_type!(BigInt);
     | -------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::iter::Product;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/macros.rs:352:19
     |
352  |             $res: Mul<T, Output = $res>,
     |                   ^^^ not found in this scope
     | 
    ::: src/bigint.rs:2970:1
     |
2970 | impl_product_iter_type!(BigInt);
     | -------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0425]: cannot find function `repeat` in this scope
   --> src/algorithms.rs:329:23
    |
329 |         p.data.extend(repeat(0).take(len));
    |                       ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::iter::repeat;
    |

error[E0425]: cannot find function `repeat` in this scope
   --> src/algorithms.rs:346:31
    |
346 |                 p.data.extend(repeat(0).take(len));
    |                               ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::iter::repeat;
    |

error[E0425]: cannot find value `Greater` in this scope
   --> src/algorithms.rs:581:58
    |
581 |         while cmp_slice(&prod.data[..], &a.data[j..]) == Greater {
    |                                                          ^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::cmp::Ordering::Greater;
    |

error[E0412]: cannot find type `Cow` in this scope
   --> src/algorithms.rs:610:23
    |
610 | pub fn biguint_shl(n: Cow<BigUint>, bits: usize) -> BigUint {
    |                       ^^^ not found in this scope

error[E0425]: cannot find function `repeat` in this scope
   --> src/algorithms.rs:617:25
    |
617 |             data.extend(repeat(0).take(n_unit));
    |                         ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::iter::repeat;
    |

error[E0412]: cannot find type `Cow` in this scope
   --> src/algorithms.rs:640:23
    |
640 | pub fn biguint_shr(n: Cow<BigUint>, bits: usize) -> BigUint {
    |                       ^^^ not found in this scope

error[E0412]: cannot find type `Ordering` in this scope
   --> src/algorithms.rs:666:53
    |
666 | pub fn cmp_slice(a: &[BigDigit], b: &[BigDigit]) -> Ordering {
    |                                                     ^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
    |
1   | use core::cmp::Ordering;
    |
1   | use core::sync::atomic::Ordering;
    |

error[E0425]: cannot find value `Less` in this scope
   --> src/algorithms.rs:672:16
    |
672 |         return Less;
    |                ^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::cmp::Ordering::Less;
    |

error[E0425]: cannot find value `Greater` in this scope
   --> src/algorithms.rs:675:16
    |
675 |         return Greater;
    |                ^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::cmp::Ordering::Greater;
    |

error[E0425]: cannot find value `Less` in this scope
   --> src/algorithms.rs:680:20
    |
680 |             return Less;
    |                    ^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::cmp::Ordering::Less;
    |

error[E0425]: cannot find value `Greater` in this scope
   --> src/algorithms.rs:683:20
    |
683 |             return Greater;
    |                    ^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::cmp::Ordering::Greater;
    |

error[E0425]: cannot find value `Equal` in this scope
   --> src/algorithms.rs:686:12
    |
686 |     return Equal;
    |            ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use core::cmp::Ordering::Equal;
    |

error[E0412]: cannot find type `Vec` in this scope
  --> src/biguint.rs:47:11
   |
47 |     data: Vec<BigDigit>,
   |           ^^^ not found in this scope

error[E0412]: cannot find type `Ordering` in this scope
  --> src/biguint.rs:63:54
   |
63 |     fn partial_cmp(&self, other: &BigUint) -> Option<Ordering> {
   |                                                      ^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
2  | use core::cmp::Ordering;
   |
2  | use core::sync::atomic::Ordering;
   |

error[E0412]: cannot find type `Ordering` in this scope
  --> src/biguint.rs:70:39
   |
70 |     fn cmp(&self, other: &BigUint) -> Ordering {
   |                                       ^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
2  | use core::cmp::Ordering;
   |
2  | use core::sync::atomic::Ordering;
   |

error[E0405]: cannot find trait `FromStr` in this scope
   --> src/biguint.rs:114:6
    |
114 | impl FromStr for BigUint {
    |      ^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::str::FromStr;
    |

error[E0405]: cannot find trait `BitAnd` in this scope
   --> src/biguint.rs:274:29
    |
274 | forward_val_val_binop!(impl BitAnd for BigUint, bitand);
    |                             ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAnd;
    |

error[E0405]: cannot find trait `BitAnd` in this scope
   --> src/biguint.rs:275:29
    |
275 | forward_ref_val_binop!(impl BitAnd for BigUint, bitand);
    |                             ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAnd;
    |

error[E0405]: cannot find trait `BitAnd` in this scope
   --> src/biguint.rs:279:14
    |
279 | impl<'a, 'b> BitAnd<&'b BigUint> for &'a BigUint {
    |              ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAnd;
    |

error[E0405]: cannot find trait `BitAndAssign` in this scope
   --> src/biguint.rs:293:26
    |
293 | forward_val_assign!(impl BitAndAssign for BigUint, bitand_assign);
    |                          ^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAndAssign;
    |

error[E0405]: cannot find trait `BitAnd` in this scope
   --> src/biguint.rs:295:10
    |
295 | impl<'a> BitAnd<&'a BigUint> for BigUint {
    |          ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAnd;
    |

error[E0405]: cannot find trait `BitAndAssign` in this scope
   --> src/biguint.rs:304:10
    |
304 | impl<'a> BitAndAssign<&'a BigUint> for BigUint {
    |          ^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitAndAssign;
    |

error[E0405]: cannot find trait `BitOr` in this scope
   --> src/biguint.rs:315:48
    |
315 | forward_all_binop_to_val_ref_commutative!(impl BitOr for BigUint, bitor);
    |                                                ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOr;
    |

error[E0405]: cannot find trait `BitOrAssign` in this scope
   --> src/biguint.rs:316:26
    |
316 | forward_val_assign!(impl BitOrAssign for BigUint, bitor_assign);
    |                          ^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOrAssign;
    |

error[E0405]: cannot find trait `BitOr` in this scope
   --> src/biguint.rs:318:10
    |
318 | impl<'a> BitOr<&'a BigUint> for BigUint {
    |          ^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOr;
    |

error[E0405]: cannot find trait `BitOrAssign` in this scope
   --> src/biguint.rs:326:10
    |
326 | impl<'a> BitOrAssign<&'a BigUint> for BigUint {
    |          ^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitOrAssign;
    |

error[E0405]: cannot find trait `BitXor` in this scope
   --> src/biguint.rs:339:48
    |
339 | forward_all_binop_to_val_ref_commutative!(impl BitXor for BigUint, bitxor);
    |                                                ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitXor;
    |

error[E0405]: cannot find trait `BitXorAssign` in this scope
   --> src/biguint.rs:340:26
    |
340 | forward_val_assign!(impl BitXorAssign for BigUint, bitxor_assign);
    |                          ^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitXorAssign;
    |

error[E0405]: cannot find trait `BitXor` in this scope
   --> src/biguint.rs:342:10
    |
342 | impl<'a> BitXor<&'a BigUint> for BigUint {
    |          ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitXor;
    |

error[E0405]: cannot find trait `BitXorAssign` in this scope
   --> src/biguint.rs:350:10
    |
350 | impl<'a> BitXorAssign<&'a BigUint> for BigUint {
    |          ^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::BitXorAssign;
    |

error[E0405]: cannot find trait `Shl` in this scope
   --> src/biguint.rs:364:6
    |
364 | impl Shl<usize> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Shl;
    |

error[E0405]: cannot find trait `Shl` in this scope
   --> src/biguint.rs:372:10
    |
372 | impl<'a> Shl<usize> for &'a BigUint {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Shl;
    |

error[E0405]: cannot find trait `ShlAssign` in this scope
   --> src/biguint.rs:381:6
    |
381 | impl ShlAssign<usize> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::ShlAssign;
    |

error[E0405]: cannot find trait `Shr` in this scope
   --> src/biguint.rs:389:6
    |
389 | impl Shr<usize> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Shr;
    |

error[E0405]: cannot find trait `Shr` in this scope
   --> src/biguint.rs:397:10
    |
397 | impl<'a> Shr<usize> for &'a BigUint {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Shr;
    |

error[E0405]: cannot find trait `ShrAssign` in this scope
   --> src/biguint.rs:406:6
    |
406 | impl ShrAssign<usize> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::ShrAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:492:48
    |
492 | forward_all_binop_to_val_ref_commutative!(impl Add for BigUint, add);
    |                                                ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/biguint.rs:493:26
    |
493 | forward_val_assign!(impl AddAssign for BigUint, add_assign);
    |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:495:10
    |
495 | impl<'a> Add<&'a BigUint> for BigUint {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/biguint.rs:503:10
    |
503 | impl<'a> AddAssign<&'a BigUint> for BigUint {
    |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:520:32
    |
520 | promote_unsigned_scalars!(impl Add for BigUint, add);
    |                                ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/biguint.rs:521:39
    |
521 | promote_unsigned_scalars_assign!(impl AddAssign for BigUint, add_assign);
    |                                       ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:522:55
    |
522 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u32> for BigUint, add);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:523:55
    |
523 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u64> for BigUint, add);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:525:55
    |
525 | forward_all_scalar_binop_to_val_val_commutative!(impl Add<u128> for BigUint, add);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:527:6
    |
527 | impl Add<u32> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/biguint.rs:537:6
    |
537 | impl AddAssign<u32> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:553:6
    |
553 | impl Add<u64> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/biguint.rs:563:6
    |
563 | impl AddAssign<u64> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Add` in this scope
   --> src/biguint.rs:583:6
    |
583 | impl Add<u128> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Add;
    |

error[E0405]: cannot find trait `AddAssign` in this scope
   --> src/biguint.rs:594:6
    |
594 | impl AddAssign<u128> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::AddAssign;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:621:29
    |
621 | forward_val_val_binop!(impl Sub for BigUint, sub);
    |                             ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:622:29
    |
622 | forward_ref_ref_binop!(impl Sub for BigUint, sub);
    |                             ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `SubAssign` in this scope
   --> src/biguint.rs:623:26
    |
623 | forward_val_assign!(impl SubAssign for BigUint, sub_assign);
    |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::SubAssign;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:625:10
    |
625 | impl<'a> Sub<&'a BigUint> for BigUint {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `SubAssign` in this scope
   --> src/biguint.rs:633:10
    |
633 | impl<'a> SubAssign<&'a BigUint> for BigUint {
    |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::SubAssign;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:640:10
    |
640 | impl<'a> Sub<BigUint> for &'a BigUint {
    |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:658:32
    |
658 | promote_unsigned_scalars!(impl Sub for BigUint, sub);
    |                                ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `SubAssign` in this scope
   --> src/biguint.rs:659:39
    |
659 | promote_unsigned_scalars_assign!(impl SubAssign for BigUint, sub_assign);
    |                                       ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::SubAssign;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:660:43
    |
660 | forward_all_scalar_binop_to_val_val!(impl Sub<u32> for BigUint, sub);
    |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:661:43
    |
661 | forward_all_scalar_binop_to_val_val!(impl Sub<u64> for BigUint, sub);
    |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:663:43
    |
663 | forward_all_scalar_binop_to_val_val!(impl Sub<u128> for BigUint, sub);
    |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:665:6
    |
665 | impl Sub<u32> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `SubAssign` in this scope
   --> src/biguint.rs:674:6
    |
674 | impl SubAssign<u32> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::SubAssign;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:681:6
    |
681 | impl Sub<BigUint> for u32 {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:695:6
    |
695 | impl Sub<u64> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `SubAssign` in this scope
   --> src/biguint.rs:705:6
    |
705 | impl SubAssign<u64> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::SubAssign;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:714:6
    |
714 | impl Sub<BigUint> for u64 {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:730:6
    |
730 | impl Sub<u128> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `SubAssign` in this scope
   --> src/biguint.rs:740:6
    |
740 | impl SubAssign<u128> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::SubAssign;
    |

error[E0405]: cannot find trait `Sub` in this scope
   --> src/biguint.rs:749:6
    |
749 | impl Sub<BigUint> for u128 {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Sub;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:764:36
    |
764 | forward_all_binop_to_ref_ref!(impl Mul for BigUint, mul);
    |                                    ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `MulAssign` in this scope
   --> src/biguint.rs:765:26
    |
765 | forward_val_assign!(impl MulAssign for BigUint, mul_assign);
    |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::MulAssign;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:767:14
    |
767 | impl<'a, 'b> Mul<&'b BigUint> for &'a BigUint {
    |              ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `MulAssign` in this scope
   --> src/biguint.rs:775:10
    |
775 | impl<'a> MulAssign<&'a BigUint> for BigUint {
    |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::MulAssign;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:782:32
    |
782 | promote_unsigned_scalars!(impl Mul for BigUint, mul);
    |                                ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `MulAssign` in this scope
   --> src/biguint.rs:783:39
    |
783 | promote_unsigned_scalars_assign!(impl MulAssign for BigUint, mul_assign);
    |                                       ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::MulAssign;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:784:55
    |
784 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u32> for BigUint, mul);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:785:55
    |
785 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u64> for BigUint, mul);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:787:55
    |
787 | forward_all_scalar_binop_to_val_val_commutative!(impl Mul<u128> for BigUint, mul);
    |                                                       ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:789:6
    |
789 | impl Mul<u32> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `MulAssign` in this scope
   --> src/biguint.rs:798:6
    |
798 | impl MulAssign<u32> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::MulAssign;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:812:6
    |
812 | impl Mul<u64> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `MulAssign` in this scope
   --> src/biguint.rs:821:6
    |
821 | impl MulAssign<u64> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::MulAssign;
    |

error[E0405]: cannot find trait `Mul` in this scope
   --> src/biguint.rs:836:6
    |
836 | impl Mul<u128> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Mul;
    |

error[E0405]: cannot find trait `MulAssign` in this scope
   --> src/biguint.rs:846:6
    |
846 | impl MulAssign<u128> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::MulAssign;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:860:36
    |
860 | forward_all_binop_to_ref_ref!(impl Div for BigUint, div);
    |                                    ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `DivAssign` in this scope
   --> src/biguint.rs:861:26
    |
861 | forward_val_assign!(impl DivAssign for BigUint, div_assign);
    |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::DivAssign;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:863:14
    |
863 | impl<'a, 'b> Div<&'b BigUint> for &'a BigUint {
    |              ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `DivAssign` in this scope
   --> src/biguint.rs:872:10
    |
872 | impl<'a> DivAssign<&'a BigUint> for BigUint {
    |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::DivAssign;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:879:32
    |
879 | promote_unsigned_scalars!(impl Div for BigUint, div);
    |                                ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `DivAssign` in this scope
   --> src/biguint.rs:880:39
    |
880 | promote_unsigned_scalars_assign!(impl DivAssign for BigUint, div_assign);
    |                                       ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::DivAssign;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:881:43
    |
881 | forward_all_scalar_binop_to_val_val!(impl Div<u32> for BigUint, div);
    |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:882:43
    |
882 | forward_all_scalar_binop_to_val_val!(impl Div<u64> for BigUint, div);
    |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:884:43
    |
884 | forward_all_scalar_binop_to_val_val!(impl Div<u128> for BigUint, div);
    |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:886:6
    |
886 | impl Div<u32> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `DivAssign` in this scope
   --> src/biguint.rs:895:6
    |
895 | impl DivAssign<u32> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::DivAssign;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:902:6
    |
902 | impl Div<BigUint> for u32 {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:915:6
    |
915 | impl Div<u64> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `DivAssign` in this scope
   --> src/biguint.rs:924:6
    |
924 | impl DivAssign<u64> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::DivAssign;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:931:6
    |
931 | impl Div<BigUint> for u64 {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:946:6
    |
946 | impl Div<u128> for BigUint {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `DivAssign` in this scope
   --> src/biguint.rs:956:6
    |
956 | impl DivAssign<u128> for BigUint {
    |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::DivAssign;
    |

error[E0405]: cannot find trait `Div` in this scope
   --> src/biguint.rs:964:6
    |
964 | impl Div<BigUint> for u128 {
    |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Div;
    |

error[E0405]: cannot find trait `Rem` in this scope
   --> src/biguint.rs:984:36
    |
984 | forward_all_binop_to_ref_ref!(impl Rem for BigUint, rem);
    |                                    ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Rem;
    |

error[E0405]: cannot find trait `RemAssign` in this scope
   --> src/biguint.rs:985:26
    |
985 | forward_val_assign!(impl RemAssign for BigUint, rem_assign);
    |                          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::RemAssign;
    |

error[E0405]: cannot find trait `Rem` in this scope
   --> src/biguint.rs:987:14
    |
987 | impl<'a, 'b> Rem<&'b BigUint> for &'a BigUint {
    |              ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::Rem;
    |

error[E0405]: cannot find trait `RemAssign` in this scope
   --> src/biguint.rs:996:10
    |
996 | impl<'a> RemAssign<&'a BigUint> for BigUint {
    |          ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
2   | use core::ops::RemAssign;
    |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1003:32
     |
1003 | promote_unsigned_scalars!(impl Rem for BigUint, rem);
     |                                ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1004:39
     |
1004 | promote_unsigned_scalars_assign!(impl RemAssign for BigUint, rem_assign);
     |                                       ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1005:43
     |
1005 | forward_all_scalar_binop_to_val_val!(impl Rem<u32> for BigUint, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1006:43
     |
1006 | forward_all_scalar_binop_to_val_val!(impl Rem<u64> for BigUint, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1008:43
     |
1008 | forward_all_scalar_binop_to_val_val!(impl Rem<u128> for BigUint, rem);
     |                                           ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1010:6
     |
1010 | impl Rem<u32> for BigUint {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1019:6
     |
1019 | impl RemAssign<u32> for BigUint {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1026:6
     |
1026 | impl Rem<BigUint> for u32 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1053 | impl_rem_assign_scalar!(u128, to_u128);
     | --------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1053 | impl_rem_assign_scalar!(u128, to_u128);
     | --------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1054 | impl_rem_assign_scalar!(usize, to_usize);
     | ----------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1054 | impl_rem_assign_scalar!(usize, to_usize);
     | ----------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1055 | impl_rem_assign_scalar!(u64, to_u64);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1055 | impl_rem_assign_scalar!(u64, to_u64);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1056 | impl_rem_assign_scalar!(u32, to_u32);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1056 | impl_rem_assign_scalar!(u32, to_u32);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1057 | impl_rem_assign_scalar!(u16, to_u16);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1057 | impl_rem_assign_scalar!(u16, to_u16);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1058 | impl_rem_assign_scalar!(u8, to_u8);
     | ----------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1058 | impl_rem_assign_scalar!(u8, to_u8);
     | ----------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1060 | impl_rem_assign_scalar!(i128, to_i128);
     | --------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1060 | impl_rem_assign_scalar!(i128, to_i128);
     | --------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1061 | impl_rem_assign_scalar!(isize, to_isize);
     | ----------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1061 | impl_rem_assign_scalar!(isize, to_isize);
     | ----------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1062 | impl_rem_assign_scalar!(i64, to_i64);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1062 | impl_rem_assign_scalar!(i64, to_i64);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1063 | impl_rem_assign_scalar!(i32, to_i32);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1063 | impl_rem_assign_scalar!(i32, to_i32);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1064 | impl_rem_assign_scalar!(i16, to_i16);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1064 | impl_rem_assign_scalar!(i16, to_i16);
     | ------------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1038:41
     |
1038 |         forward_val_assign_scalar!(impl RemAssign for BigUint, $scalar, rem_assign);
     |                                         ^^^^^^^^^ not found in this scope
...
1065 | impl_rem_assign_scalar!(i8, to_i8);
     | ----------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1039:18
     |
1039 |         impl<'a> RemAssign<&'a BigUint> for $scalar {
     |                  ^^^^^^^^^ not found in this scope
...
1065 | impl_rem_assign_scalar!(i8, to_i8);
     | ----------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1067:6
     |
1067 | impl Rem<u64> for BigUint {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1076:6
     |
1076 | impl RemAssign<u64> for BigUint {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1083:6
     |
1083 | impl Rem<BigUint> for u64 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1094:6
     |
1094 | impl Rem<u128> for BigUint {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `RemAssign` in this scope
    --> src/biguint.rs:1104:6
     |
1104 | impl RemAssign<u128> for BigUint {
     |      ^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::RemAssign;
     |

error[E0405]: cannot find trait `Rem` in this scope
    --> src/biguint.rs:1112:6
     |
1112 | impl Rem<BigUint> for u128 {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Rem;
     |

error[E0405]: cannot find trait `Neg` in this scope
    --> src/biguint.rs:1122:6
     |
1122 | impl Neg for BigUint {
     |      ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Neg;
     |

error[E0405]: cannot find trait `Neg` in this scope
    --> src/biguint.rs:1131:10
     |
1131 | impl<'a> Neg for &'a BigUint {
     |          ^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Neg;
     |

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:1691:54
     |
1691 | fn to_bitwise_digits_le(u: &BigUint, bits: usize) -> Vec<u8> {
     |                                                      ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:1717:62
     |
1717 | fn to_inexact_bitwise_digits_le(u: &BigUint, bits: usize) -> Vec<u8> {
     |                                                              ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:1757:51
     |
1757 | fn to_radix_digits_le(u: &BigUint, radix: u32) -> Vec<u8> {
     |                                                   ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:1786:48
     |
1786 | pub fn to_radix_le(u: &BigUint, radix: u32) -> Vec<u8> {
     |                                                ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:1806:58
     |
1806 | pub fn to_str_radix_reversed(u: &BigUint, radix: u32) -> Vec<u8> {
     |                                                          ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:1832:24
     |
1832 |     pub fn new(digits: Vec<u32>) -> BigUint {
     |                        ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:2015:34
     |
2015 |     pub fn to_bytes_be(&self) -> Vec<u8> {
     |                                  ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:2032:34
     |
2032 |     pub fn to_bytes_le(&self) -> Vec<u8> {
     |                                  ^^^ not found in this scope

error[E0412]: cannot find type `String` in this scope
    --> src/biguint.rs:2052:47
     |
2052 |     pub fn to_str_radix(&self, radix: u32) -> String {
     |                                               ^^^^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:2073:46
     |
2073 |     pub fn to_radix_be(&self, radix: u32) -> Vec<u8> {
     |                                              ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:2094:46
     |
2094 |     pub fn to_radix_le(&self, radix: u32) -> Vec<u8> {
     |                                              ^^^ not found in this scope

error[E0405]: cannot find trait `Sum` in this scope
    --> src/macros.rs:334:17
     |
334  |         impl<T> Sum<T> for $res
     |                 ^^^
     | 
    ::: src/biguint.rs:2191:1
     |
2191 | impl_sum_iter_type!(BigUint);
     | ----------------------------- in this macro invocation
help: a trait with a similar name exists
     |
334  |         impl<T> Num<T> for $res
     |                 ^^^
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::iter::Sum;
     |

error[E0405]: cannot find trait `Add` in this scope
    --> src/macros.rs:336:19
     |
336  |             $res: Add<T, Output = $res>,
     |                   ^^^ not found in this scope
     | 
    ::: src/biguint.rs:2191:1
     |
2191 | impl_sum_iter_type!(BigUint);
     | ----------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Add;
     |

error[E0405]: cannot find trait `Product` in this scope
    --> src/macros.rs:350:17
     |
350  |         impl<T> Product<T> for $res
     |                 ^^^^^^^ not found in this scope
     | 
    ::: src/biguint.rs:2192:1
     |
2192 | impl_product_iter_type!(BigUint);
     | --------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::iter::Product;
     |

error[E0405]: cannot find trait `Mul` in this scope
    --> src/macros.rs:352:19
     |
352  |             $res: Mul<T, Output = $res>,
     |                   ^^^ not found in this scope
     | 
    ::: src/biguint.rs:2192:1
     |
2192 | impl_product_iter_type!(BigUint);
     | --------------------------------- in this macro invocation
help: possible candidate is found in another module, you can import it into scope
     |
2    | use core::ops::Mul;
     |

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:2196:38
     |
2196 |     fn digits_mut(&mut self) -> &mut Vec<BigDigit>;
     |                                      ^^^ not found in this scope

error[E0412]: cannot find type `Vec` in this scope
    --> src/biguint.rs:2208:38
     |
2208 |     fn digits_mut(&mut self) -> &mut Vec<BigDigit> {
     |                                      ^^^ not found in this scope

error[E0405]: cannot find trait `Error` in this scope
   --> src/lib.rs:152:6
    |
152 | impl Error for ParseBigIntError {
    |      ^^^^^ not found in this scope

error: aborting due to 497 previous errors

Some errors occurred: E0405, E0412, E0425, E0432, E0433.
For more information about an error, try `rustc --explain E0405`.
builder for '/nix/store/z9nlbzmxsz6smr6l1yf1x1civh1x7ahl-rust_num-bigint-0.2.2.drv' failed with exit code 1
cannot build derivation '/nix/store/0sjm90mbycyx355l5qm993inll42swd8-rust_numtest-0.1.0.drv': 1 dependencies couldn't be built
error: build of '/nix/store/0sjm90mbycyx355l5qm993inll42swd8-rust_numtest-0.1.0.drv' failed

@kolloch
Copy link
Collaborator

kolloch commented Jul 23, 2019

Hi @tilpner,

I had a quick look. With a more recent version of rust (1.34.0) it first worked for me. I could reproduce your problems with (1.32.0). When I did a cargo update, it actually stopped working with a different error. And then I went out of time...

Sorry, I will have a more systematic look some time later. If you have time to help, you could

  • update the rust version that is used at config generation time
  • compare the rustc command line from cargo build -v with the one using nix-build (and implicitly crate2nix and buildRustCrate)

@tilpner
Copy link
Contributor Author

tilpner commented Jul 23, 2019

It still occurs with 1.35 (current unstable, easier to get than 1.34).

nix /tmp > rustc -V; cargo -V; crate2nix -V
rustc 1.35.0
cargo 1.35.0
crate2nix 0.5.0-alpha.0 # b24b31ffc0ea437da22a6f75612b2e5ac4b8f016
nix /tmp > cargo new --bin numtest && cd numtest
     Created binary (application) `numtest` package
nix /tmp/numtest > echo 'num = "0.2"' >> Cargo.toml
nix /tmp/numtest > crate2nix generate
Prefetching    1/8: https://crates.io/api/v1/crates/autocfg/0.1.5/download
Prefetching    2/8: https://crates.io/api/v1/crates/num/0.2.0/download
Prefetching    3/8: https://crates.io/api/v1/crates/num-bigint/0.2.2/download
Prefetching    4/8: https://crates.io/api/v1/crates/num-complex/0.2.3/download
Prefetching    5/8: https://crates.io/api/v1/crates/num-integer/0.1.41/download
Prefetching    6/8: https://crates.io/api/v1/crates/num-iter/0.1.39/download
Prefetching    7/8: https://crates.io/api/v1/crates/num-rational/0.2.2/download
Prefetching    8/8: https://crates.io/api/v1/crates/num-traits/0.2.8/download
Wrote hashes to ./crate-hashes.json.
Generated ./default.nix successfully.

nix /tmp/numtest > NIX_PATH=nixpkgs=channel:nixos-unstable nix-build --no-out-link -A rootCrate.build
these derivations will be built:
  /nix/store/vrb3db4r3is7q8iv81bl37pkv8n4xxxz-rust_num-bigint-0.2.2.drv
  /nix/store/767kvzx8lkg3z5s3iwz7ffv1q0yqqnr0-rust_num-rational-0.2.2.drv
  /nix/store/5f6lq37afa9mw18vhslpyhmgxjdkch3j-rust_num-0.2.0.drv
  /nix/store/9jybmixsni14yc68bhkkndsr69lnphj6-rust_numtest-0.1.0.drv
building '/nix/store/vrb3db4r3is7q8iv81bl37pkv8n4xxxz-rust_num-bigint-0.2.2.drv'...
unpacking sources
unpacking source archive /nix/store/dbbddfhjvlwm1hhllmlb42ilamaalqbd-num-bigint-0.2.2.tar.gz
source root is num-bigint-0.2.2.tar.gz
patching sources
configuring
Building build.rs (num-bigint)
Running rustc --crate-name build_script_build build.rs --crate-type bin -C opt-level=3 -C codegen-units=7 --edition 2015 --out-dir target/build/num-bigint --emit=dep-info,link -L dependency=target/buildDeps --cap-lints allow --color always
building
Building src/lib.rs (num-bigint)
Running rustc --crate-name num_bigint src/lib.rs --crate-type lib -C opt-level=3 -C codegen-units=7 --edition 2015 -C metadata=5267052fbf -C extra-filename=-5267052fbf --out-dir target/lib --emit=dep-info,link -L dependency=target/deps --extern num_integer=/nix/store/xqscn9l8a9l4pmr8z7qsy3cjffclh843-rust_num-integer-0.1.41/lib/libnum_integer-92d5248289.rlib --extern num_traits=/nix/store/z7bzsang9k0wzaiszyqinp1bgpc147jn-rust_num-traits-0.2.8/lib/libnum_traits-bc00277194.rlib --cap-lints allow -L /build/num-bigint-0.2.2.tar.gz/target/build/num-bigint.out --cfg has_i128 --color always
error[E0433]: failed to resolve: maybe a missing `extern crate std;`?
  --> src/lib.rs:91:5
   |
91 | use std::error::Error;
   |     ^^^ maybe a missing `extern crate std;`?
...
error: aborting due to 497 previous errors

Some errors occurred: E0405, E0412, E0425, E0432, E0433.
For more information about an error, try `rustc --explain E0405`.
builder for '/nix/store/vrb3db4r3is7q8iv81bl37pkv8n4xxxz-rust_num-bigint-0.2.2.drv' failed with exit code 1
cannot build derivation '/nix/store/9jybmixsni14yc68bhkkndsr69lnphj6-rust_numtest-0.1.0.drv': 1 dependencies couldn't be built
error: build of '/nix/store/9jybmixsni14yc68bhkkndsr69lnphj6-rust_numtest-0.1.0.drv' failed

Full log of nix-build

crate2nix (edited):

rustc --crate-name num_bigint src/lib.rs --crate-type lib -C opt-level=3 -C codegen-units=7 --edition 2015 -C metadata=5267052fbf -C extra-filename=-5267052fbf --out-dir target/lib --emit=dep-info,link -L dependency=target/deps --extern num_integer=libnum_integer-92d5248289.rlib --extern num_traits=libnum_traits-bc00277194.rlib --cap-lints allow -L /build/num-bigint-0.2.2.tar.gz/target/build/num-bigint.out --cfg has_i128 --color always

cargo (edited):

rustc --crate-name num_bigint num-bigint-0.2.2/src/lib.rs --color never --crate-type lib --emit=dep-info,link -C debuginfo=2 --cfg 'feature="num-integer"' --cfg 'feature="num-traits"' --cfg 'feature="std"' -C metadata=97d230caf42645a4 -C extra-filename=-97d230caf42645a4 --out-dir /tmp/numtest/target/debug/deps -L dependency=/tmp/numtest/target/debug/deps --extern num_integer=/tmp/numtest/target/debug/deps/libnum_integer-a3ddc8a6c75b1951.rlib --extern num_traits=/tmp/numtest/target/debug/deps/libnum_traits-4aa529c07e90deb9.rlib --cap-lints allow --cfg has_i128

crate2nix (only interesting differences):

rustc src/lib.rs --edition 2015 -L /build/num-bigint-0.2.2.tar.gz/target/build/num-bigint.out

cargo (only interesting differences):

rustc src/lib.rs  --cfg 'feature="num-integer"' --cfg 'feature="num-traits"' --cfg 'feature="std"'

num-bigint has the features std and i128, and std isn't set by crate2nix.

@kolloch
Copy link
Collaborator

kolloch commented Aug 22, 2019

Thanks for the excellent analysis. I am looking at the different feature configuration first.

That is weird indeed. Some problems with the feature propagation. If I recreated the numtest crate, I get the following dependency attributes from cargo metadata

 {
          "name": "num",
          "source": "registry+https://github.com/rust-lang/crates.io-index",
          "req": "^0.2.0",
          //...
          "optional": false,
          "uses_default_features": true,
          "features": []
        },

"num" itself has the following:

 "features": {
        "default": [
          "std"
        ],
       // ...
        "std": [
          "num-bigint/std",
          "num-complex/std",
          "num-integer/std",
          "num-iter/std",
          "num-rational/std",
          "num-rational/bigint",
          "num-traits/std"
        ]

So it enables "std" by default and std enables the dependency features. The code looks like the intention is to support this behavior but it apparently doesn't. I'll investigate...

@kolloch
Copy link
Collaborator

kolloch commented Aug 22, 2019

This is fixed on master.

Basically, the code didn't enable a dependency if a dependency feature was enabled and not the dependency directly.

Sorry, that this was your first experience with crate2nix.

kolloch added a commit that referenced this issue Aug 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants