[INFO] cloning repository https://github.com/AbolareRoheemah/Shamir-Secret-Sharing
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AbolareRoheemah/Shamir-Secret-Sharing" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAbolareRoheemah%2FShamir-Secret-Sharing", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAbolareRoheemah%2FShamir-Secret-Sharing'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0f7139187592a0c7b0f4dd60cd7fc932666cabb3
[INFO] checking AbolareRoheemah/Shamir-Secret-Sharing against master#04ff05c9c0cfbca33115c5f1b8bb20a66a54b799 for pr-147834
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAbolareRoheemah%2FShamir-Secret-Sharing" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  88% (1078/1224)
Updating files:  89% (1090/1224)
Updating files:  90% (1102/1224)
Updating files:  91% (1114/1224)
Updating files:  92% (1127/1224)
Updating files:  93% (1139/1224)
Updating files:  94% (1151/1224)
Updating files:  95% (1163/1224)
Updating files:  96% (1176/1224)
Updating files:  97% (1188/1224)
Updating files:  98% (1200/1224)
Updating files:  99% (1212/1224)
Updating files: 100% (1224/1224)
Updating files: 100% (1224/1224), done.
[INFO] started tweaking git repo https://github.com/AbolareRoheemah/Shamir-Secret-Sharing
[INFO] finished tweaking git repo https://github.com/AbolareRoheemah/Shamir-Secret-Sharing
[INFO] tweaked toml for git repo https://github.com/AbolareRoheemah/Shamir-Secret-Sharing written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AbolareRoheemah/Shamir-Secret-Sharing on toolchain 04ff05c9c0cfbca33115c5f1b8bb20a66a54b799
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+04ff05c9c0cfbca33115c5f1b8bb20a66a54b799" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AbolareRoheemah/Shamir-Secret-Sharing already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+04ff05c9c0cfbca33115c5f1b8bb20a66a54b799" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ark-bn254 v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+04ff05c9c0cfbca33115c5f1b8bb20a66a54b799" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eece9ef2afaece7c07b011f1589959ffc77c81b19cbc50e936dcd52f266331e9
[INFO] running `Command { std: "docker" "start" "-a" "eece9ef2afaece7c07b011f1589959ffc77c81b19cbc50e936dcd52f266331e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eece9ef2afaece7c07b011f1589959ffc77c81b19cbc50e936dcd52f266331e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eece9ef2afaece7c07b011f1589959ffc77c81b19cbc50e936dcd52f266331e9", kill_on_drop: false }`
[INFO] [stdout] eece9ef2afaece7c07b011f1589959ffc77c81b19cbc50e936dcd52f266331e9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+04ff05c9c0cfbca33115c5f1b8bb20a66a54b799" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1147d7f0ed4c28ee2a6a720c93391f776a76afe87aca8e3fb627d39897c54edf
[INFO] running `Command { std: "docker" "start" "-a" "1147d7f0ed4c28ee2a6a720c93391f776a76afe87aca8e3fb627d39897c54edf", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking once_cell v1.20.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling enum-ordinalize-derive v4.3.1
[INFO] [stderr]    Compiling ark-serialize-derive v0.5.0
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling ark-ff-macros v0.5.0
[INFO] [stderr]    Compiling ark-ff-asm v0.5.0
[INFO] [stderr]    Compiling enum-ordinalize v4.3.0
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling educe v0.6.0
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking ark-std v0.5.0
[INFO] [stderr]     Checking ark-serialize v0.5.0
[INFO] [stderr]     Checking ark-ff v0.5.0
[INFO] [stderr]     Checking ark-poly v0.5.0
[INFO] [stderr]     Checking ark-ec v0.5.0
[INFO] [stderr]     Checking ark-bn254 v0.5.0
[INFO] [stderr]     Checking shamir-secret-sharing v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected one of `.`, `;`, `?`, `}`, or an operator, found `s`
[INFO] [stdout]   --> src/prime_field_shamir.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 26 |             .sum()s
[INFO] [stdout]    |                   ^ expected one of `.`, `;`, `?`, `}`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `class_impl`
[INFO] [stdout]  --> src/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod class_impl; 
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `class_impl`, create file "src/class_impl.rs" or "src/class_impl/mod.rs"
[INFO] [stdout]   = note: if there is a `mod class_impl` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `class_impl`
[INFO] [stdout]  --> src/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod class_impl; 
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `class_impl`, create file "src/class_impl.rs" or "src/class_impl/mod.rs"
[INFO] [stdout]   = note: if there is a `mod class_impl` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `.`, `;`, `?`, `}`, or an operator, found `s`
[INFO] [stdout]   --> src/prime_field_shamir.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 26 |             .sum()s
[INFO] [stdout]    |                   ^ expected one of `.`, `;`, `?`, `}`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ark_bn254::Fq`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use ark_bn254::Fq;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ark_bn254::Fq`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use ark_bn254::Fq;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Product for Univariatepoly {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]   --> src/main.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Product for Univariatepoly<F> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl Sum for Univariatepoly {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]   --> src/main.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl Sum for Univariatepoly<F> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Add for &Univariatepoly {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Add for &Univariatepoly<F> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:120:15
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Mul for &Univariatepoly {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Mul for &Univariatepoly<F> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Product for Univariatepoly {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]   --> src/main.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Product for Univariatepoly<F> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl Sum for Univariatepoly {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]   --> src/main.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl Sum for Univariatepoly<F> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Add for &Univariatepoly {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Add for &Univariatepoly<F> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:120:15
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Mul for &Univariatepoly {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Mul for &Univariatepoly<F> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:138:14
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl Add for Univariatepoly {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl Add for Univariatepoly<F> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl Mul for Univariatepoly {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl Mul for Univariatepoly<F> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:173:53
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn construct_polynomial(secret: BigUint, k: u32) -> Univariatepoly {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn construct_polynomial(secret: BigUint, k: u32) -> Univariatepoly<F> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:199:55
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn interpolate(xs: Vec<BigUint>, ys: Vec<BigUint>) -> Univariatepoly {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn interpolate(xs: Vec<BigUint>, ys: Vec<BigUint>) -> Univariatepoly<F> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:102:19
[INFO] [stdout]     |
[INFO] [stdout] 102 |     type Output = Univariatepoly;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 102 |     type Output = Univariatepoly<F>;
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |     type Output = Univariatepoly;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 121 |     type Output = Univariatepoly<F>;
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `F` by `&num_bigint::BigUint`
[INFO] [stdout]   --> src/main.rs:55:64
[INFO] [stdout]    |
[INFO] [stdout] 55 |         self.coef.iter().rev().cloned().reduce(|acc, curr| acc * &x_big + curr).unwrap() % &*PRIME
[INFO] [stdout]    |                                                                ^ no implementation for `F * &num_bigint::BigUint`
[INFO] [stdout]    |
[INFO] [stdout] help: consider further restricting type parameter `F` with trait `Mul`
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField + std::ops::Mul<&num_bigint::BigUint>> Univariatepoly<F> {
[INFO] [stdout]    |                     +++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot calculate the remainder of `F` divided by `&num_bigint::BigUint`
[INFO] [stdout]   --> src/main.rs:55:90
[INFO] [stdout]    |
[INFO] [stdout] 55 |         self.coef.iter().rev().cloned().reduce(|acc, curr| acc * &x_big + curr).unwrap() % &*PRIME
[INFO] [stdout]    |         -------------------------------------------------------------------------------- ^ ------- &num_bigint::BigUint
[INFO] [stdout]    |         |
[INFO] [stdout]    |         F
[INFO] [stdout]    |
[INFO] [stdout] help: consider further restricting type parameter `F` with trait `Rem`
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField + std::ops::Rem<&num_bigint::BigUint, Output = num_bigint::BigUint>> Univariatepoly<F> {
[INFO] [stdout]    |                     +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `shamir-secret-sharing` (bin "prime_field_shamir") due to 1 previous error
[INFO] [stdout] error[E0369]: cannot multiply `&F` by `&num_bigint::BigUint`
[INFO] [stdout]   --> src/main.rs:60:31
[INFO] [stdout]    |
[INFO] [stdout] 60 |             .map(|coef| (coef * &scalar) % &*PRIME)
[INFO] [stdout]    |                          ---- ^ ------- &num_bigint::BigUint
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          &F
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn mod_scalar_mul(&self, scalar: BigUint) -> Self where &F: Mul<&num_bigint::BigUint> {
[INFO] [stdout]    |                                                       +++++++++++++++++++++++++++++++++++
[INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField> Univariatepoly<F> where &F: Mul<&num_bigint::BigUint> {
[INFO] [stdout]    |                                        +++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:138:14
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl Add for Univariatepoly {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl Add for Univariatepoly<F> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl Mul for Univariatepoly {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl Mul for Univariatepoly<F> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:173:53
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn construct_polynomial(secret: BigUint, k: u32) -> Univariatepoly {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn construct_polynomial(secret: BigUint, k: u32) -> Univariatepoly<F> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:199:55
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn interpolate(xs: Vec<BigUint>, ys: Vec<BigUint>) -> Univariatepoly {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn interpolate(xs: Vec<BigUint>, ys: Vec<BigUint>) -> Univariatepoly<F> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:102:19
[INFO] [stdout]     |
[INFO] [stdout] 102 |     type Output = Univariatepoly;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 102 |     type Output = Univariatepoly<F>;
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |     type Output = Univariatepoly;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/main.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 121 |     type Output = Univariatepoly<F>;
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:67:24
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let numerator: Univariatepoly = interpolating_set.iter()
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]   --> src/main.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let numerator: Univariatepoly<F> = interpolating_set.iter()
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `F` by `&BigUint`
[INFO] [stdout]   --> src/main.rs:55:64
[INFO] [stdout]    |
[INFO] [stdout] 55 |         self.coef.iter().rev().cloned().reduce(|acc, curr| acc * &x_big + curr).unwrap() % &*PRIME
[INFO] [stdout]    |                                                                ^ no implementation for `F * &BigUint`
[INFO] [stdout]    |
[INFO] [stdout] help: consider further restricting type parameter `F` with trait `Mul`
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField + std::ops::Mul<&num_bigint::BigUint>> Univariatepoly<F> {
[INFO] [stdout]    |                     +++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot calculate the remainder of `F` divided by `&BigUint`
[INFO] [stdout]   --> src/main.rs:55:90
[INFO] [stdout]    |
[INFO] [stdout] 55 |         self.coef.iter().rev().cloned().reduce(|acc, curr| acc * &x_big + curr).unwrap() % &*PRIME
[INFO] [stdout]    |         -------------------------------------------------------------------------------- ^ ------- &BigUint
[INFO] [stdout]    |         |
[INFO] [stdout]    |         F
[INFO] [stdout]    |
[INFO] [stdout] help: consider further restricting type parameter `F` with trait `Rem`
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField + std::ops::Rem<&num_bigint::BigUint, Output = BigUint>> Univariatepoly<F> {
[INFO] [stdout]    |                     +++++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `&F` by `&BigUint`
[INFO] [stdout]   --> src/main.rs:60:31
[INFO] [stdout]    |
[INFO] [stdout] 60 |             .map(|coef| (coef * &scalar) % &*PRIME)
[INFO] [stdout]    |                          ---- ^ ------- &BigUint
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          &F
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn mod_scalar_mul(&self, scalar: BigUint) -> Self where &F: Mul<&BigUint> {
[INFO] [stdout]    |                                                       +++++++++++++++++++++++
[INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField> Univariatepoly<F> where &F: Mul<&BigUint> {
[INFO] [stdout]    |                                        +++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:71:37
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 Univariatepoly::new(vec![neg_x, BigUint::one()])
[INFO] [stdout]    |                 ------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]   --> src/main.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]    |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout] 42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]    |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:67:41
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let numerator: Univariatepoly = interpolating_set.iter()
[INFO] [stdout]    |  _________________________________________^
[INFO] [stdout] 68 | |             .filter(|x_val| *x_val != x)
[INFO] [stdout] 69 | |             .map(|x_in_set| {
[INFO] [stdout] 70 | |                 let neg_x = (&*PRIME - x_in_set) % &*PRIME;
[INFO] [stdout] 71 | |                 Univariatepoly::new(vec![neg_x, BigUint::one()])
[INFO] [stdout] 72 | |             })
[INFO] [stdout]    | |______________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:83:46
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let mut result = Univariatepoly::new(vec![BigUint::one()]);
[INFO] [stdout]    |                          ------------------- ^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]   --> src/main.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]    |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout] 42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]    |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:83:26
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let mut result = Univariatepoly::new(vec![BigUint::one()]);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:85:30
[INFO] [stdout]    |
[INFO] [stdout] 85 |             result = &result * &poly;
[INFO] [stdout]    |                              ^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:93:46
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut result = Univariatepoly::new(vec![BigUint::zero()]);
[INFO] [stdout]    |                          ------------------- ^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]   --> src/main.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]    |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout] 42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]    |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:93:26
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut result = Univariatepoly::new(vec![BigUint::zero()]);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:95:30
[INFO] [stdout]    |
[INFO] [stdout] 95 |             result = &result + &poly;
[INFO] [stdout]    |                              ^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:67:24
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let numerator: Univariatepoly = interpolating_set.iter()
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]   --> src/main.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let numerator: Univariatepoly<F> = interpolating_set.iter()
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:71:37
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 Univariatepoly::new(vec![neg_x, BigUint::one()])
[INFO] [stdout]    |                 ------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]   --> src/main.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]    |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout] 42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]    |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:67:41
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let numerator: Univariatepoly = interpolating_set.iter()
[INFO] [stdout]    |  _________________________________________^
[INFO] [stdout] 68 | |             .filter(|x_val| *x_val != x)
[INFO] [stdout] 69 | |             .map(|x_in_set| {
[INFO] [stdout] 70 | |                 let neg_x = (&*PRIME - x_in_set) % &*PRIME;
[INFO] [stdout] 71 | |                 Univariatepoly::new(vec![neg_x, BigUint::one()])
[INFO] [stdout] 72 | |             })
[INFO] [stdout]    | |______________^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:83:46
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let mut result = Univariatepoly::new(vec![BigUint::one()]);
[INFO] [stdout]    |                          ------------------- ^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]   --> src/main.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]    |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout] 42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]    |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:83:26
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let mut result = Univariatepoly::new(vec![BigUint::one()]);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:85:30
[INFO] [stdout]    |
[INFO] [stdout] 85 |             result = &result * &poly;
[INFO] [stdout]    |                              ^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:93:46
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut result = Univariatepoly::new(vec![BigUint::zero()]);
[INFO] [stdout]    |                          ------------------- ^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]   --> src/main.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]    |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout] 42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]    |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:93:26
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut result = Univariatepoly::new(vec![BigUint::zero()]);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]   --> src/main.rs:95:30
[INFO] [stdout]    |
[INFO] [stdout] 95 |             result = &result + &poly;
[INFO] [stdout]    |                              ^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]   --> src/main.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]    |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |         Univariatepoly::new(result)
[INFO] [stdout]     |         ------------------- ^^^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout]  42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `shamir-secret-sharing` (bin "prime_field_shamir" test) due to 1 previous error
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         Univariatepoly::new(result)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |         Univariatepoly::new(result)
[INFO] [stdout]     |         ------------------- ^^^^^^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout]  42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         Univariatepoly::new(result)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:231:40
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let poly = Univariatepoly::new(coef);
[INFO] [stdout]     |                    ------------------- ^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout]  42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:231:20
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let poly = Univariatepoly::new(coef);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `evaluate` exists for struct `Univariatepoly<num_bigint::BigUint>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:234:25
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     | ------------------------------------ method `evaluate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 234 |         assert_eq!(poly.evaluate(2), BigUint::from(17u32));
[INFO] [stdout]     |                         ^^^^^^^^ method cannot be called on `Univariatepoly<num_bigint::BigUint>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-0.4.6/src/biguint.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout]  34 | pub struct BigUint {
[INFO] [stdout]     | ------------------ doesn't satisfy `num_bigint::BigUint: PrimeField`
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `num_bigint::BigUint: PrimeField` was not satisfied
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^  -----------------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `evaluate`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `ark_poly::polynomial::Polynomial`
[INFO] [stdout]             candidate #2: `ark_poly::polynomial::multivariate::Term`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:239:41
[INFO] [stdout]     |
[INFO] [stdout] 239 |           let poly1 = Univariatepoly::new(vec![
[INFO] [stdout]     |  _____________________-------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     required by a bound introduced by this call
[INFO] [stdout] 240 | |             BigUint::from(1u32),
[INFO] [stdout] 241 | |             BigUint::from(2u32),
[INFO] [stdout] 242 | |         ]);
[INFO] [stdout]     | |_________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout]  42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `shamir-secret-sharing` (bin "shamir-secret-sharing") due to 25 previous errors; 2 warnings emitted
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:239:21
[INFO] [stdout]     |
[INFO] [stdout] 239 |           let poly1 = Univariatepoly::new(vec![
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 240 | |             BigUint::from(1u32),
[INFO] [stdout] 241 | |             BigUint::from(2u32),
[INFO] [stdout] 242 | |         ]);
[INFO] [stdout]     | |__________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:243:41
[INFO] [stdout]     |
[INFO] [stdout] 243 |           let poly2 = Univariatepoly::new(vec![
[INFO] [stdout]     |  _____________________-------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     required by a bound introduced by this call
[INFO] [stdout] 244 | |             BigUint::from(3u32),
[INFO] [stdout] 245 | |             BigUint::from(4u32),
[INFO] [stdout] 246 | |         ]);
[INFO] [stdout]     | |_________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout]  42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |           let poly2 = Univariatepoly::new(vec![
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 244 | |             BigUint::from(3u32),
[INFO] [stdout] 245 | |             BigUint::from(4u32),
[INFO] [stdout] 246 | |         ]);
[INFO] [stdout]     | |__________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:248:29
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let result = &poly1 + &poly2;
[INFO] [stdout]     |                             ^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0277, E0369, E0583.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:257:41
[INFO] [stdout]     |
[INFO] [stdout] 257 |           let poly1 = Univariatepoly::new(vec![
[INFO] [stdout]     |  _____________________-------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     required by a bound introduced by this call
[INFO] [stdout] 258 | |             BigUint::from(1u32),  // 1 + 2x
[INFO] [stdout] 259 | |             BigUint::from(2u32),
[INFO] [stdout] 260 | |         ]);
[INFO] [stdout]     | |_________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout]  42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:257:21
[INFO] [stdout]     |
[INFO] [stdout] 257 |           let poly1 = Univariatepoly::new(vec![
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 258 | |             BigUint::from(1u32),  // 1 + 2x
[INFO] [stdout] 259 | |             BigUint::from(2u32),
[INFO] [stdout] 260 | |         ]);
[INFO] [stdout]     | |__________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:261:41
[INFO] [stdout]     |
[INFO] [stdout] 261 |           let poly2 = Univariatepoly::new(vec![
[INFO] [stdout]     |  _____________________-------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     required by a bound introduced by this call
[INFO] [stdout] 262 | |             BigUint::from(3u32),  // 3 + 4x
[INFO] [stdout] 263 | |             BigUint::from(4u32),
[INFO] [stdout] 264 | |         ]);
[INFO] [stdout]     | |_________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout]  42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:261:21
[INFO] [stdout]     |
[INFO] [stdout] 261 |           let poly2 = Univariatepoly::new(vec![
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 262 | |             BigUint::from(3u32),  // 3 + 4x
[INFO] [stdout] 263 | |             BigUint::from(4u32),
[INFO] [stdout] 264 | |         ]);
[INFO] [stdout]     | |__________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:266:29
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let result = &poly1 * &poly2;
[INFO] [stdout]     |                             ^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:304:40
[INFO] [stdout]     |
[INFO] [stdout] 304 |           let poly = Univariatepoly::new(vec![
[INFO] [stdout]     |  ____________________-------------------_^
[INFO] [stdout]     | |                    |
[INFO] [stdout]     | |                    required by a bound introduced by this call
[INFO] [stdout] 305 | |             BigUint::from(2u32),
[INFO] [stdout] 306 | |             BigUint::from(3u32),
[INFO] [stdout] 307 | |         ]);
[INFO] [stdout]     | |_________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly::<F>::new`
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^ required by this bound in `Univariatepoly::<F>::new`
[INFO] [stdout]  42 |     fn new(coef: Vec<F>) -> Self {
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `num_bigint::BigUint: PrimeField` is not satisfied
[INFO] [stdout]    --> src/main.rs:304:20
[INFO] [stdout]     |
[INFO] [stdout] 304 |           let poly = Univariatepoly::new(vec![
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 305 | |             BigUint::from(2u32),
[INFO] [stdout] 306 | |             BigUint::from(3u32),
[INFO] [stdout] 307 | |         ]);
[INFO] [stdout]     | |__________^ the trait `PrimeField` is not implemented for `num_bigint::BigUint`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PrimeField` is implemented for `Fp<P, N>`
[INFO] [stdout] note: required by a bound in `Univariatepoly`
[INFO] [stdout]    --> src/main.rs:37:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     |                          ^^^^^^^^^^ required by this bound in `Univariatepoly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `mod_scalar_mul` exists for struct `Univariatepoly<num_bigint::BigUint>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:310:27
[INFO] [stdout]     |
[INFO] [stdout]  37 | struct Univariatepoly<F: PrimeField> {
[INFO] [stdout]     | ------------------------------------ method `mod_scalar_mul` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 310 |         let result = poly.mod_scalar_mul(scalar);
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ method cannot be called on `Univariatepoly<num_bigint::BigUint>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-0.4.6/src/biguint.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout]  34 | pub struct BigUint {
[INFO] [stdout]     | ------------------ doesn't satisfy `num_bigint::BigUint: PrimeField`
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `num_bigint::BigUint: PrimeField` was not satisfied
[INFO] [stdout]    --> src/main.rs:41:10
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl <F: PrimeField> Univariatepoly<F> {
[INFO] [stdout]     |          ^^^^^^^^^^  -----------------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0277, E0369, E0583, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `shamir-secret-sharing` (bin "shamir-secret-sharing" test) due to 41 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1147d7f0ed4c28ee2a6a720c93391f776a76afe87aca8e3fb627d39897c54edf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1147d7f0ed4c28ee2a6a720c93391f776a76afe87aca8e3fb627d39897c54edf", kill_on_drop: false }`
[INFO] [stdout] 1147d7f0ed4c28ee2a6a720c93391f776a76afe87aca8e3fb627d39897c54edf
