[INFO] crate zkp-stark 0.1.2 is already in cache [INFO] documenting zkp-stark-0.1.2 against try#66dfc4e010913fbed0c4ea91fc2c010004b0f441 for pr-73566 [INFO] extracting crate zkp-stark 0.1.2 into /workspace/builds/worker-0/source [INFO] validating manifest of crates.io crate zkp-stark 0.1.2 on toolchain 66dfc4e010913fbed0c4ea91fc2c010004b0f441 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate zkp-stark 0.1.2 [INFO] finished tweaking crates.io crate zkp-stark 0.1.2 [INFO] tweaked toml for crates.io crate zkp-stark 0.1.2 written to /workspace/builds/worker-0/source/Cargo.toml [INFO] crate crates.io crate zkp-stark 0.1.2 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env@sha256:819119df93c0f5eca3f29186f14981ef29945a311854d7222af07488600a2584" "/opt/rustwide/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9ab0cc4f2ea209db6908d8b22113cf89268bf651bc6df4622d4e46e98927d2e4 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "9ab0cc4f2ea209db6908d8b22113cf89268bf651bc6df4622d4e46e98927d2e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9ab0cc4f2ea209db6908d8b22113cf89268bf651bc6df4622d4e46e98927d2e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9ab0cc4f2ea209db6908d8b22113cf89268bf651bc6df4622d4e46e98927d2e4", kill_on_drop: false }` [INFO] [stdout] 9ab0cc4f2ea209db6908d8b22113cf89268bf651bc6df4622d4e46e98927d2e4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-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" "--network" "none" "rustops/crates-build-env@sha256:819119df93c0f5eca3f29186f14981ef29945a311854d7222af07488600a2584" "/opt/rustwide/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d72e67719f9510b498ba4029f66e09f390f18a2005bae77c7796baa64d4d355d [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "d72e67719f9510b498ba4029f66e09f390f18a2005bae77c7796baa64d4d355d", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Compiling proc-macro2 v1.0.5 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling syn v1.0.5 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling hex v0.4.0 [INFO] [stderr] Checking either v1.5.3 [INFO] [stderr] Compiling getrandom v0.1.12 [INFO] [stderr] Checking no-std-compat v0.1.1 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Checking ppv-lite86 v0.2.5 [INFO] [stderr] Checking nodrop v0.1.13 [INFO] [stderr] Checking scopeguard v1.0.0 [INFO] [stderr] Checking remove_dir_all v0.5.2 [INFO] [stderr] Checking quick-error v1.2.2 [INFO] [stderr] Checking termcolor v1.0.5 [INFO] [stderr] Checking zkp-error-utils v0.1.0 [INFO] [stderr] Checking memmap v0.7.0 [INFO] [stderr] Checking tiny-keccak v1.5.0 [INFO] [stderr] Checking arrayvec v0.4.11 [INFO] [stderr] Checking humantime v1.3.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking itertools v0.8.0 [INFO] [stderr] Checking crossbeam-utils v0.6.6 [INFO] [stderr] Checking thread_local v0.3.6 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Checking regex v1.3.1 [INFO] [stderr] Checking zkp-logging-allocator v0.1.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking crossbeam-queue v0.1.2 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Checking c2-chacha v0.2.2 [INFO] [stderr] Checking rand_chacha v0.2.1 [INFO] [stderr] Compiling memoffset v0.5.1 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Checking rand v0.7.2 [INFO] [stderr] Checking crossbeam-epoch v0.7.2 [INFO] [stderr] Checking env_logger v0.6.2 [INFO] [stderr] Checking crossbeam-deque v0.7.1 [INFO] [stderr] Checking rayon-core v1.6.0 [INFO] [stderr] Checking tempfile v3.1.0 [INFO] [stderr] Checking zkp-mmap-vec v0.1.0 [INFO] [stderr] Checking rayon v1.2.0 [INFO] [stderr] Compiling zkp-macros-lib v0.1.0 [INFO] [stderr] Compiling proc-macro-hack v0.5.10 [INFO] [stderr] Compiling zkp-macros-impl v0.1.0 [INFO] [stderr] Checking zkp-macros-decl v0.1.0 [INFO] [stderr] Checking zkp-u256 v0.1.1 [INFO] [stderr] Checking zkp-primefield v0.1.1 [INFO] [stderr] Checking zkp-elliptic-curve v0.1.0 [INFO] [stderr] Checking zkp-hash v0.1.0 [INFO] [stderr] Checking zkp-merkle-tree v0.1.0 [INFO] [stderr] Checking zkp-elliptic-curve-crypto v0.1.0 [INFO] [stderr] Documenting zkp-stark v0.1.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / #![cfg_attr(not(feature = "std"), no_std)] [INFO] [stdout] 6 | | #![forbid(unsafe_code)] [INFO] [stdout] 7 | | #![warn( [INFO] [stdout] 8 | | // Enable sets of warnings [INFO] [stdout] ... | [INFO] [stdout] 90 | | } [INFO] [stdout] 91 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | missing_doc_code_examples, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:66:1 [INFO] [stdout] | [INFO] [stdout] 66 | pub use zkp_primefield as primefield; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / /// Constraints for Stark proofs [INFO] [stdout] 21 | | /// [INFO] [stdout] 22 | | /// Contains the constraint expressions that apply to the trace table in [INFO] [stdout] 23 | | /// addition to various tuning parameters that determine how proofs are [INFO] [stdout] ... | [INFO] [stdout] 27 | | /// **Note**: This does not including the constraint system or anything [INFO] [stdout] 28 | | /// about the claim to be proven. [INFO] [stdout] | |_________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | channel_seed: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | trace_nrows: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | trace_ncolumns: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | expressions: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | / /// The blowup factor [INFO] [stdout] 40 | | /// [INFO] [stdout] 41 | | /// The size of the low-degree-extension domain compared to the trace [INFO] [stdout] 42 | | /// domain. Should be a power of two. Recommended values are 16, 32 or 64. [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | / /// Proof of work difficulty [INFO] [stdout] 46 | | /// [INFO] [stdout] 47 | | /// The difficulty of the proof of work step in number of leading zero bits [INFO] [stdout] 48 | | /// required. [INFO] [stdout] | |_________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | /// Number of queries made to the oracles [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | / /// Number of FRI reductions between steps [INFO] [stdout] 55 | | /// [INFO] [stdout] 56 | | /// After the initial LDE polynomial is committed, several rounds of FRI [INFO] [stdout] 57 | | /// degree reduction are done. Entries in the vector specify how many [INFO] [stdout] ... | [INFO] [stdout] 60 | | /// After `fri_layout.sum()` reductions are done, the remaining polynomial [INFO] [stdout] 61 | | /// is written explicitly in coefficient form. [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct DensePolynomial(MmapVec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:12:28 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct DensePolynomial(MmapVec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Proof(Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Proof(Vec); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | / pub struct TraceTable { [INFO] [stdout] 15 | | trace_length: usize, [INFO] [stdout] 16 | | num_columns: usize, [INFO] [stdout] 17 | | values: MmapVec, [INFO] [stdout] 18 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | trace_length: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | num_columns: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | values: MmapVec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | / pub enum Error { [INFO] [stdout] 8 | | InvalidTraceLength, [INFO] [stdout] 9 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | InvalidTraceLength, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / pub enum RationalExpression { [INFO] [stdout] 13 | | X, [INFO] [stdout] 14 | | Constant(FieldElement), [INFO] [stdout] 15 | | Trace(usize, isize), [INFO] [stdout] ... | [INFO] [stdout] 21 | | Exp(Box, usize), [INFO] [stdout] 22 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | X, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | Constant(FieldElement), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | Trace(usize, isize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | Polynomial(DensePolynomial, Box), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | Add(Box, Box), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | Neg(Box), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | Mul(Box, Box), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | Inv(Box), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | Exp(Box, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | / pub enum Error { [INFO] [stdout] 18 | | RootUnavailable, [INFO] [stdout] 19 | | InvalidPoW, [INFO] [stdout] 20 | | InvalidLDECommitment, [INFO] [stdout] ... | [INFO] [stdout] 28 | | Merkle(MerkleError), [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | RootUnavailable, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | InvalidPoW, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | InvalidLDECommitment, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | InvalidConstraintCommitment, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | InvalidFriCommitment, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | HashMapFailure, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | ProofTooLong, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | OodsCalculationFailure, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | OodsMismatch, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | FriCalculationFailure, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | Merkle(MerkleError), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / pub enum Error { [INFO] [stdout] 26 | | RootUnavailable, [INFO] [stdout] 27 | | MerkleFailed(MerkleError), [INFO] [stdout] 28 | | VerificationFailed(VerifierError), [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | RootUnavailable, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | MerkleFailed(MerkleError), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | VerificationFailed(VerifierError), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:74:1 [INFO] [stdout] | [INFO] [stdout] 74 | / /// # Stark verify [INFO] [stdout] 75 | | /// [INFO] [stdout] 76 | | /// ## Input [INFO] [stdout] 77 | | /// [INFO] [stdout] ... | [INFO] [stdout] 168 | | /// [INFO] [stdout] 169 | | /// [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:137:1 [INFO] [stdout] | [INFO] [stdout] 137 | / /// # Produce a Stark proof. [INFO] [stdout] 138 | | /// [INFO] [stdout] 139 | | /// ## Input [INFO] [stdout] 140 | | /// [INFO] [stdout] ... | [INFO] [stdout] 341 | | /// with merkle proofs to that layer. This process is repeated for all FRI layer [INFO] [stdout] 342 | | /// commitments. [INFO] [stdout] | |________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / #![allow(clippy::module_name_repetitions)] [INFO] [stdout] 3 | | use crate::proof_of_work; [INFO] [stdout] 4 | | use std::prelude::v1::*; [INFO] [stdout] 5 | | use tiny_keccak::Keccak; [INFO] [stdout] ... | [INFO] [stdout] 452 | | } [INFO] [stdout] 453 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | / pub(crate) struct PublicCoin { [INFO] [stdout] 32 | | pub(crate) digest: [u8; 32], [INFO] [stdout] 33 | | counter: u64, [INFO] [stdout] 34 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) digest: [u8; 32], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | counter: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | / pub(crate) struct ProverChannel { [INFO] [stdout] 39 | | pub(crate) coin: PublicCoin, [INFO] [stdout] 40 | | pub(crate) proof: Vec, [INFO] [stdout] 41 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub(crate) coin: PublicCoin, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub(crate) proof: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | / pub(crate) struct VerifierChannel { [INFO] [stdout] 46 | | pub(crate) coin: PublicCoin, [INFO] [stdout] 47 | | pub(crate) proof: Vec, [INFO] [stdout] 48 | | proof_index: usize, [INFO] [stdout] 49 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub(crate) coin: PublicCoin, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub(crate) proof: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | proof_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / pub(crate) trait RandomGenerator { [INFO] [stdout] 13 | | fn get_random(&mut self) -> T; [INFO] [stdout] 14 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | fn get_random(&mut self) -> T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / pub(crate) trait Writable { [INFO] [stdout] 17 | | fn write(&mut self, data: T); [INFO] [stdout] 18 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | fn write(&mut self, data: T); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / pub(crate) trait Replayable { [INFO] [stdout] 21 | | fn replay(&mut self) -> T; [INFO] [stdout] 22 | | [INFO] [stdout] 23 | | fn replay_many(&mut self, count: usize) -> Vec { [INFO] [stdout] 24 | | (0..count).map(|_| self.replay()).collect() [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | fn replay(&mut self) -> T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / fn replay_many(&mut self, count: usize) -> Vec { [INFO] [stdout] 24 | | (0..count).map(|_| self.replay()).collect() [INFO] [stdout] 25 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | / impl PublicCoin { [INFO] [stdout] 52 | | pub(crate) fn new() -> Self { [INFO] [stdout] 53 | | Self { [INFO] [stdout] 54 | | digest: [0; 32], [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | / pub(crate) fn new() -> Self { [INFO] [stdout] 53 | | Self { [INFO] [stdout] 54 | | digest: [0; 32], [INFO] [stdout] 55 | | counter: 0, [INFO] [stdout] 56 | | } [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / pub(crate) fn seed(&mut self, seed: &[u8]) { [INFO] [stdout] 60 | | let mut keccak = Keccak::new_keccak256(); [INFO] [stdout] 61 | | keccak.update(seed); [INFO] [stdout] 62 | | keccak.finalize(&mut self.digest); [INFO] [stdout] 63 | | self.counter = 0; [INFO] [stdout] 64 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | / impl ProverChannel { [INFO] [stdout] 78 | | pub(crate) fn new() -> Self { [INFO] [stdout] 79 | | Self { [INFO] [stdout] 80 | | coin: PublicCoin::new(), [INFO] [stdout] ... | [INFO] [stdout] 87 | | } [INFO] [stdout] 88 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | / pub(crate) fn new() -> Self { [INFO] [stdout] 79 | | Self { [INFO] [stdout] 80 | | coin: PublicCoin::new(), [INFO] [stdout] 81 | | proof: Vec::new(), [INFO] [stdout] 82 | | } [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | / pub(crate) fn initialize(&mut self, seed: &[u8]) { [INFO] [stdout] 86 | | self.coin.seed(seed); [INFO] [stdout] 87 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:90:1 [INFO] [stdout] | [INFO] [stdout] 90 | / impl VerifierChannel { [INFO] [stdout] 91 | | pub(crate) fn new(proof: Vec) -> Self { [INFO] [stdout] 92 | | Self { [INFO] [stdout] 93 | | coin: PublicCoin::new(), [INFO] [stdout] ... | [INFO] [stdout] 105 | | } [INFO] [stdout] 106 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / pub(crate) fn new(proof: Vec) -> Self { [INFO] [stdout] 92 | | Self { [INFO] [stdout] 93 | | coin: PublicCoin::new(), [INFO] [stdout] 94 | | proof, [INFO] [stdout] 95 | | proof_index: 0, [INFO] [stdout] 96 | | } [INFO] [stdout] 97 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | / pub(crate) fn initialize(&mut self, seed: &[u8]) { [INFO] [stdout] 100 | | self.coin.seed(seed); [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | / pub(crate) fn at_end(self) -> bool { [INFO] [stdout] 104 | | self.proof_index == self.proof.len() [INFO] [stdout] 105 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use crate::rational_expression::RationalExpression; [INFO] [stdout] 2 | | use itertools::Itertools; [INFO] [stdout] 3 | | use std::{fmt, prelude::v1::*}; [INFO] [stdout] 4 | | use zkp_primefield::FieldElement; [INFO] [stdout] ... | [INFO] [stdout] 236 | | } [INFO] [stdout] 237 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:65:1 [INFO] [stdout] | [INFO] [stdout] 65 | / impl Constraints { [INFO] [stdout] 66 | | fn default_fri_layout(trace_nrows: usize) -> Vec { [INFO] [stdout] 67 | | // The binary logarithm of the final layer polynomial degree. [INFO] [stdout] 68 | | const LOG2_TARGET: usize = 8; [INFO] [stdout] ... | [INFO] [stdout] 202 | | } [INFO] [stdout] 203 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | / fn default_fri_layout(trace_nrows: usize) -> Vec { [INFO] [stdout] 67 | | // The binary logarithm of the final layer polynomial degree. [INFO] [stdout] 68 | | const LOG2_TARGET: usize = 8; [INFO] [stdout] 69 | | [INFO] [stdout] ... | [INFO] [stdout] 85 | | fri_layout [INFO] [stdout] 86 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | / pub fn from_expressions( [INFO] [stdout] 89 | | (trace_nrows, trace_ncolumns): (usize, usize), [INFO] [stdout] 90 | | channel_seed: Vec, [INFO] [stdout] 91 | | expressions: Vec, [INFO] [stdout] ... | [INFO] [stdout] 108 | | }) [INFO] [stdout] 109 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | / pub fn channel_seed(&self) -> &[u8] { [INFO] [stdout] 112 | | &self.channel_seed [INFO] [stdout] 113 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | / pub fn trace_nrows(&self) -> usize { [INFO] [stdout] 116 | | self.trace_nrows [INFO] [stdout] 117 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | / pub fn trace_ncolumns(&self) -> usize { [INFO] [stdout] 120 | | self.trace_ncolumns [INFO] [stdout] 121 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / pub fn len(&self) -> usize { [INFO] [stdout] 124 | | self.expressions.len() [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | / pub fn is_empty(&self) -> bool { [INFO] [stdout] 128 | | self.expressions().is_empty() [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | / pub fn expressions(&self) -> &[RationalExpression] { [INFO] [stdout] 132 | | &self.expressions [INFO] [stdout] 133 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 135 | / pub fn degree(&self) -> usize { [INFO] [stdout] 136 | | self.expressions [INFO] [stdout] 137 | | .iter() [INFO] [stdout] 138 | | .map(|c| { [INFO] [stdout] ... | [INFO] [stdout] 143 | | .expect("no constraints") [INFO] [stdout] 144 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | / pub fn security_bits(&self) -> usize { [INFO] [stdout] 148 | | // Our conservative formula is (1/2^blowup_log)^(queries/2)*(1/2^pow_bits) [INFO] [stdout] 149 | | // So the bit security should be blowup_log*(queries/2) + pow_bits [INFO] [stdout] 150 | | let blowup_log = (64 - (self.blowup as u64).leading_zeros()) as usize; [INFO] [stdout] 151 | | blowup_log * (self.num_queries / 2) + self.pow_bits [INFO] [stdout] 152 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:159:5 [INFO] [stdout] | [INFO] [stdout] 159 | / pub fn max_proof_size(&self) -> usize { [INFO] [stdout] 160 | | let trace_len_log = self.trace_nrows().trailing_zeros() as usize; [INFO] [stdout] 161 | | // First we decommit two proofs for each query [one which is the evaluation [INFO] [stdout] 162 | | // domain decommitment and one is the constraints] [INFO] [stdout] ... | [INFO] [stdout] 181 | | 32 * total_decommitment [INFO] [stdout] 182 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / pub(crate) fn combine(&self, constraint_coefficients: &[FieldElement]) -> RationalExpression { [INFO] [stdout] 185 | | use RationalExpression::*; [INFO] [stdout] 186 | | assert_eq!(2 * self.len(), constraint_coefficients.len()); [INFO] [stdout] 187 | | let target_degree = self.degree() * self.trace_nrows() - 1; [INFO] [stdout] ... | [INFO] [stdout] 201 | | .sum() [INFO] [stdout] 202 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / #![allow(clippy::module_name_repetitions)] [INFO] [stdout] 3 | | #[cfg(feature = "std")] [INFO] [stdout] 4 | | use rayon::prelude::*; [INFO] [stdout] 5 | | use std::prelude::v1::*; [INFO] [stdout] ... | [INFO] [stdout] 148 | | } [INFO] [stdout] 149 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl DensePolynomial { [INFO] [stdout] 23 | | pub fn from_mmap_vec(coefficients: MmapVec) -> Self { [INFO] [stdout] 24 | | assert!(coefficients.len().is_power_of_two()); [INFO] [stdout] 25 | | Self(coefficients) [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [INFO] [stdout] 113 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / pub fn from_mmap_vec(coefficients: MmapVec) -> Self { [INFO] [stdout] 24 | | assert!(coefficients.len().is_power_of_two()); [INFO] [stdout] 25 | | Self(coefficients) [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn new(coefficients: &[FieldElement]) -> Self { [INFO] [stdout] 31 | | assert!(coefficients.len().is_power_of_two()); [INFO] [stdout] 32 | | let mut vec = MmapVec::with_capacity(coefficients.len()); [INFO] [stdout] 33 | | vec.extend_from_slice(coefficients); [INFO] [stdout] 34 | | Self(vec) [INFO] [stdout] 35 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / pub fn zeros(size: usize) -> Self { [INFO] [stdout] 38 | | assert!(size.is_power_of_two()); [INFO] [stdout] 39 | | let mut vec = MmapVec::with_capacity(size); [INFO] [stdout] 40 | | vec.resize(size, FieldElement::ZERO); [INFO] [stdout] 41 | | Self(vec) [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn len(&self) -> usize { [INFO] [stdout] 47 | | self.0.len() [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | / pub fn is_empty(&self) -> bool { [INFO] [stdout] 51 | | self.0.is_empty() [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | / pub fn coefficients(&self) -> &[FieldElement] { [INFO] [stdout] 55 | | &self.0 [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / pub fn degree(&self) -> usize { [INFO] [stdout] 61 | | let mut degree = self.len() - 1; [INFO] [stdout] 62 | | while self.0[degree] == FieldElement::ZERO && degree > 0 { [INFO] [stdout] 63 | | degree -= 1; [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | degree [INFO] [stdout] 66 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / pub fn evaluate(&self, x: &FieldElement) -> FieldElement { [INFO] [stdout] 69 | | let mut result = FieldElement::ZERO; [INFO] [stdout] 70 | | for coefficient in self.0.iter().rev() { [INFO] [stdout] 71 | | result *= x; [INFO] [stdout] ... | [INFO] [stdout] 74 | | result [INFO] [stdout] 75 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | / pub fn low_degree_extension(&self, blowup: usize) -> MmapVec { [INFO] [stdout] 79 | | // TODO: shift polynomial by FieldElement::GENERATOR outside of this function. [INFO] [stdout] 80 | | const SHIFT_FACTOR: FieldElement = FieldElement::GENERATOR; [INFO] [stdout] 81 | | let length = self.len() * blowup; [INFO] [stdout] ... | [INFO] [stdout] 98 | | result [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / /// Divide out a point and add the scaled result to target. [INFO] [stdout] 102 | | /// [INFO] [stdout] 103 | | /// target += c * (P(X) - P(z)) / (X - z) [INFO] [stdout] 104 | | /// See: https://en.wikipedia.org/wiki/Synthetic_division [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use std::prelude::v1::*; [INFO] [stdout] 2 | | [INFO] [stdout] 3 | | #[derive(Clone, Debug, PartialEq)] [INFO] [stdout] 4 | | pub struct Proof(Vec); [INFO] [stdout] ... | [INFO] [stdout] 13 | | } [INFO] [stdout] 14 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / impl Proof { [INFO] [stdout] 7 | | pub fn from_bytes(bytes: Vec) -> Self { [INFO] [stdout] 8 | | Self(bytes) [INFO] [stdout] 9 | | } [INFO] [stdout] ... | [INFO] [stdout] 13 | | } [INFO] [stdout] 14 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | / pub fn from_bytes(bytes: Vec) -> Self { [INFO] [stdout] 8 | | Self(bytes) [INFO] [stdout] 9 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / pub fn as_bytes(&self) -> &[u8] { [INFO] [stdout] 12 | | &self.0 [INFO] [stdout] 13 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / #[cfg(all(feature = "std", feature = "prover"))] [INFO] [stdout] 2 | | use log::info; [INFO] [stdout] 3 | | #[cfg(all(feature = "std", feature = "prover"))] [INFO] [stdout] 4 | | use rayon::prelude::*; [INFO] [stdout] ... | [INFO] [stdout] 138 | | } [INFO] [stdout] 139 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub(crate) struct ChallengeSeed([u8; 32]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:14:33 [INFO] [stdout] | [INFO] [stdout] 14 | pub(crate) struct ChallengeSeed([u8; 32]); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | / pub(crate) struct Challenge { [INFO] [stdout] 19 | | seed: [u8; 32], [INFO] [stdout] 20 | | difficulty: usize, [INFO] [stdout] 21 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | seed: [u8; 32], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | difficulty: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / pub(crate) struct Response { [INFO] [stdout] 26 | | nonce: u64, [INFO] [stdout] 27 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | nonce: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:114:1 [INFO] [stdout] | [INFO] [stdout] 114 | / fn fetch_min(atom: &AtomicU64, value: u64) -> u64 { [INFO] [stdout] 115 | | let mut prev = atom.load(Relaxed); [INFO] [stdout] 116 | | while prev > value { [INFO] [stdout] 117 | | match atom.compare_exchange_weak(prev, value, Relaxed, Relaxed) { [INFO] [stdout] ... | [INFO] [stdout] 122 | | prev [INFO] [stdout] 123 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / impl ChallengeSeed { [INFO] [stdout] 30 | | pub(crate) fn from_bytes(seed: [u8; 32]) -> Self { [INFO] [stdout] 31 | | Self(seed) [INFO] [stdout] 32 | | } [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] 43 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub(crate) fn from_bytes(seed: [u8; 32]) -> Self { [INFO] [stdout] 31 | | Self(seed) [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / pub(crate) fn with_difficulty(self, difficulty: usize) -> Challenge { [INFO] [stdout] 35 | | let mut seed = [0_u8; 32]; [INFO] [stdout] 36 | | let mut keccak = Keccak::new_keccak256(); [INFO] [stdout] 37 | | keccak.update(&hex!("0123456789abcded")); [INFO] [stdout] ... | [INFO] [stdout] 41 | | Challenge { difficulty, seed } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | / impl Challenge { [INFO] [stdout] 46 | | pub(crate) fn verify(&self, response: Response) -> bool { [INFO] [stdout] 47 | | // TODO: return Result<()> [INFO] [stdout] 48 | | // OPT: Inline Keccak256 and work directly on buffer using 'keccakf' [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] 58 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub(crate) fn verify(&self, response: Response) -> bool { [INFO] [stdout] 47 | | // TODO: return Result<()> [INFO] [stdout] 48 | | // OPT: Inline Keccak256 and work directly on buffer using 'keccakf' [INFO] [stdout] 49 | | let mut keccak = Keccak::new_keccak256(); [INFO] [stdout] ... | [INFO] [stdout] 56 | | work >= self.difficulty [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / impl Challenge { [INFO] [stdout] 62 | | #[cfg(not(feature = "std"))] [INFO] [stdout] 63 | | pub(crate) fn solve(&self) -> Response { [INFO] [stdout] 64 | | // We assume a nonce exists and will be found in reasonable time. [INFO] [stdout] ... | [INFO] [stdout] 97 | | } [INFO] [stdout] 98 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | / pub(crate) fn solve(&self) -> Response { [INFO] [stdout] 78 | | let num_threads = rayon::current_num_threads(); [INFO] [stdout] 79 | | info!( [INFO] [stdout] 80 | | "Solving {} bit proof of work with {} threads.", [INFO] [stdout] ... | [INFO] [stdout] 96 | | } [INFO] [stdout] 97 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:100:1 [INFO] [stdout] | [INFO] [stdout] 100 | / impl Response { [INFO] [stdout] 101 | | pub(crate) fn from_nonce(nonce: u64) -> Self { [INFO] [stdout] 102 | | Self { nonce } [INFO] [stdout] 103 | | } [INFO] [stdout] ... | [INFO] [stdout] 107 | | } [INFO] [stdout] 108 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / pub(crate) fn from_nonce(nonce: u64) -> Self { [INFO] [stdout] 102 | | Self { nonce } [INFO] [stdout] 103 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/proof_of_work.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | / pub(crate) fn nonce(self) -> u64 { [INFO] [stdout] 106 | | self.nonce [INFO] [stdout] 107 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use crate::polynomial::DensePolynomial; [INFO] [stdout] 2 | | use std::{ [INFO] [stdout] 3 | | iter::Sum, [INFO] [stdout] 4 | | ops::{Add, Div, Mul, Sub}, [INFO] [stdout] ... | [INFO] [stdout] 164 | | } [INFO] [stdout] 165 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / impl RationalExpression { [INFO] [stdout] 25 | | pub fn neg(&self) -> Self { [INFO] [stdout] 26 | | Self::Neg(Box::new(self.clone())) [INFO] [stdout] 27 | | } [INFO] [stdout] ... | [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | / pub fn neg(&self) -> Self { [INFO] [stdout] 26 | | Self::Neg(Box::new(self.clone())) [INFO] [stdout] 27 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn inv(&self) -> Self { [INFO] [stdout] 30 | | Self::Inv(Box::new(self.clone())) [INFO] [stdout] 31 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / pub fn pow(&self, exponent: usize) -> Self { [INFO] [stdout] 34 | | Self::Exp(Box::new(self.clone()), exponent) [INFO] [stdout] 35 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:99:1 [INFO] [stdout] | [INFO] [stdout] 99 | / impl RationalExpression { [INFO] [stdout] 100 | | /// Numerator and denominator degree of the expression in X. [INFO] [stdout] 101 | | /// [INFO] [stdout] 102 | | /// Calculates an upper bound. Cancelations may occur. [INFO] [stdout] ... | [INFO] [stdout] 164 | | } [INFO] [stdout] 165 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / /// Numerator and denominator degree of the expression in X. [INFO] [stdout] 101 | | /// [INFO] [stdout] 102 | | /// Calculates an upper bound. Cancelations may occur. [INFO] [stdout] | |__________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | / pub fn trace_degree(&self) -> (usize, usize) { [INFO] [stdout] 109 | | self.degree_impl(0, 1) [INFO] [stdout] 110 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | / fn degree_impl(&self, x_degree: usize, trace_degree: usize) -> (usize, usize) { [INFO] [stdout] 114 | | use RationalExpression::*; [INFO] [stdout] 115 | | match self { [INFO] [stdout] 116 | | X => (x_degree, 0), [INFO] [stdout] ... | [INFO] [stdout] 144 | | } [INFO] [stdout] 145 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | / pub fn evaluate( [INFO] [stdout] 148 | | &self, [INFO] [stdout] 149 | | x: &FieldElement, [INFO] [stdout] 150 | | trace: &dyn Fn(usize, isize) -> FieldElement, [INFO] [stdout] ... | [INFO] [stdout] 163 | | } [INFO] [stdout] 164 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/traits.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / #[cfg(feature = "prover")] [INFO] [stdout] 2 | | use crate::{prove, ProverError, TraceTable}; [INFO] [stdout] 3 | | use crate::{verify, Constraints, Proof, VerifierError}; [INFO] [stdout] 4 | | [INFO] [stdout] ... | [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/traits.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub trait Verifiable { [INFO] [stdout] 6 | | fn constraints(&self) -> Constraints; [INFO] [stdout] 7 | | [INFO] [stdout] 8 | | fn verify(&self, proof: &Proof) -> Result<(), VerifierError> { [INFO] [stdout] ... | [INFO] [stdout] 11 | | } [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/traits.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | fn constraints(&self) -> Constraints; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/traits.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / fn verify(&self, proof: &Proof) -> Result<(), VerifierError> { [INFO] [stdout] 9 | | let constraints = self.constraints(); [INFO] [stdout] 10 | | verify(&constraints, proof) [INFO] [stdout] 11 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/traits.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / pub trait Provable: Verifiable { [INFO] [stdout] 16 | | fn trace(&self, witness: T) -> TraceTable; [INFO] [stdout] 17 | | [INFO] [stdout] 18 | | fn prove(&self, witness: T) -> Result { [INFO] [stdout] ... | [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/traits.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | fn trace(&self, witness: T) -> TraceTable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/traits.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / fn prove(&self, witness: T) -> Result { [INFO] [stdout] 19 | | let constraints = self.constraints(); [INFO] [stdout] 20 | | let trace = self.trace(witness); [INFO] [stdout] 21 | | prove(&constraints, &trace) [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use crate::{ [INFO] [stdout] 2 | | channel::*, constraints::Constraints, polynomial::DensePolynomial, proof_of_work, Proof, [INFO] [stdout] 3 | | }; [INFO] [stdout] 4 | | #[cfg(feature = "std")] [INFO] [stdout] ... | [INFO] [stdout] 562 | | } [INFO] [stdout] 563 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:406:1 [INFO] [stdout] | [INFO] [stdout] 406 | / fn oods_value_from_trace_values( [INFO] [stdout] 407 | | constraints: &Constraints, [INFO] [stdout] 408 | | coefficients: &[FieldElement], [INFO] [stdout] 409 | | trace_values: &[FieldElement], [INFO] [stdout] ... | [INFO] [stdout] 419 | | .evaluate(oods_point, &trace) [INFO] [stdout] 420 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:422:1 [INFO] [stdout] | [INFO] [stdout] 422 | / fn oods_value_from_constraint_values( [INFO] [stdout] 423 | | constraint_values: &[FieldElement], [INFO] [stdout] 424 | | oods_point: &FieldElement, [INFO] [stdout] 425 | | ) -> FieldElement { [INFO] [stdout] ... | [INFO] [stdout] 432 | | result [INFO] [stdout] 433 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:437:1 [INFO] [stdout] | [INFO] [stdout] 437 | / fn get_indices(num: usize, bits: u32, proof: &mut VerifierChannel) -> Vec { [INFO] [stdout] 438 | | let mut query_indices = Vec::with_capacity(num + 3); [INFO] [stdout] 439 | | while query_indices.len() < num { [INFO] [stdout] 440 | | let val: U256 = proof.get_random(); [INFO] [stdout] ... | [INFO] [stdout] 448 | | query_indices [INFO] [stdout] 449 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:451:1 [INFO] [stdout] | [INFO] [stdout] 451 | / fn fri_fold( [INFO] [stdout] 452 | | coset: &[FieldElement], [INFO] [stdout] 453 | | eval_point: &FieldElement, [INFO] [stdout] 454 | | mut step: usize, [INFO] [stdout] ... | [INFO] [stdout] 474 | | coset_full[0].clone() [INFO] [stdout] 475 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:477:1 [INFO] [stdout] | [INFO] [stdout] 477 | / fn fri_single_fold( [INFO] [stdout] 478 | | poly_at_x: &FieldElement, [INFO] [stdout] 479 | | poly_at_neg_x: &FieldElement, [INFO] [stdout] 480 | | x: &FieldElement, [INFO] [stdout] ... | [INFO] [stdout] 483 | | (poly_at_x + poly_at_neg_x) + eval_point / x * (poly_at_x - poly_at_neg_x) [INFO] [stdout] 484 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:488:1 [INFO] [stdout] | [INFO] [stdout] 488 | / fn out_of_domain_element( [INFO] [stdout] 489 | | poly_points_u: &[U256], [INFO] [stdout] 490 | | constraint_oods_values: &[FieldElement], [INFO] [stdout] 491 | | x_cord: &FieldElement, [INFO] [stdout] ... | [INFO] [stdout] 521 | | Ok(r) [INFO] [stdout] 522 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use crate::{ [INFO] [stdout] 2 | | polynomial::DensePolynomial, rational_expression::RationalExpression, trace_table::TraceTable, [INFO] [stdout] 3 | | }; [INFO] [stdout] 4 | | use std::{cmp::min, ops::Neg, prelude::v1::*}; [INFO] [stdout] ... | [INFO] [stdout] 622 | | } [INFO] [stdout] 623 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | /// Evaluation graph for algebraic expressions over a coset. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | /// The cofactor of the evaluation domain. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | /// The size of the evaluation domain. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | /// The blowup of the trace table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | /// Seed value for random evaluation. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | /// Evaluation nodes in causal order. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | /// Current row [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:63:1 [INFO] [stdout] | [INFO] [stdout] 63 | /// Node in the evaluation graph. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | /// The operation represented by the node [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | / /// Node evaluated on a random value. [INFO] [stdout] 70 | | /// [INFO] [stdout] 71 | | /// It acts as an 'algebraic' hash allowing [INFO] [stdout] 72 | | /// us to identify algebraically equivalent nodes. [INFO] [stdout] | |______________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | /// Period after which node values repeat [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | /// Scratch space for the evaluators [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | values: [FieldElement; CHUNK_SIZE], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:99:1 [INFO] [stdout] | [INFO] [stdout] 99 | /// Reference to a node in the graph. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:101:25 [INFO] [stdout] | [INFO] [stdout] 101 | pub(crate) struct Index(usize); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:104:1 [INFO] [stdout] | [INFO] [stdout] 104 | struct Table(Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | struct Table(Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:84:1 [INFO] [stdout] | [INFO] [stdout] 84 | /// Algebraic operations supported by the graph. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | Constant(FieldElement), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | Coset(FieldElement, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | Trace(usize, isize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | Add(Index, Index), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | Neg(Index), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | Mul(Index, Index), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | Inv(Index), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | Exp(Index, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | Poly(DensePolynomial, Index), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | Lookup(Table), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:144:1 [INFO] [stdout] | [INFO] [stdout] 144 | / fn from_entropy(keccak: Keccak) -> FieldElement { [INFO] [stdout] 145 | | let mut result = [0; 32]; [INFO] [stdout] 146 | | keccak.finalize(&mut result); [INFO] [stdout] 147 | | result[0] &= 0xF; [INFO] [stdout] ... | [INFO] [stdout] 153 | | FieldElement::from_montgomery(u256) [INFO] [stdout] 154 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / /// Number of values to calculate at once. [INFO] [stdout] 10 | | /// [INFO] [stdout] 11 | | /// A larger value means larger chunks for batch inversion and fewer iterations [INFO] [stdout] 12 | | /// of the dag. Larger values also mean less cache locality. [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / const CHUNK_INIT: [FieldElement; CHUNK_SIZE] = [ [INFO] [stdout] 17 | | FieldElement::ZERO, [INFO] [stdout] 18 | | FieldElement::ZERO, [INFO] [stdout] 19 | | FieldElement::ZERO, [INFO] [stdout] ... | [INFO] [stdout] 32 | | FieldElement::ZERO, [INFO] [stdout] 33 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | / /// Maximum size of a periodic lookup table. [INFO] [stdout] 36 | | /// [INFO] [stdout] 37 | | /// Sub-expressions that are discovered to be periodic get evaluated into a [INFO] [stdout] 38 | | /// lookup table when the period is equal to or less than this value. [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:156:1 [INFO] [stdout] | [INFO] [stdout] 156 | / impl AlgebraicGraph { [INFO] [stdout] 157 | | pub(crate) fn new(cofactor: &FieldElement, coset_size: usize, trace_blowup: usize) -> Self { [INFO] [stdout] 158 | | assert!(coset_size.is_power_of_two()); [INFO] [stdout] 159 | | // Create seed out of parameters [INFO] [stdout] ... | [INFO] [stdout] 574 | | } [INFO] [stdout] 575 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | / pub(crate) fn new(cofactor: &FieldElement, coset_size: usize, trace_blowup: usize) -> Self { [INFO] [stdout] 158 | | assert!(coset_size.is_power_of_two()); [INFO] [stdout] 159 | | // Create seed out of parameters [INFO] [stdout] 160 | | let mut keccak = Keccak::new_keccak256(); [INFO] [stdout] ... | [INFO] [stdout] 170 | | } [INFO] [stdout] 171 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 173 | / /// A random evaluation of the node [INFO] [stdout] 174 | | /// [INFO] [stdout] 175 | | /// The node is evaluated on a random set up inputs derived from the seed. [INFO] [stdout] 176 | | /// If two nodes have the same random evaluation, it can be safely assumed [INFO] [stdout] 177 | | /// that they are algebraically identical. [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | / fn simplify(&self, operation: Operation) -> Operation { [INFO] [stdout] 216 | | use Operation::*; [INFO] [stdout] 217 | | match operation { [INFO] [stdout] 218 | | Add(a, b) => { [INFO] [stdout] ... | [INFO] [stdout] 273 | | } [INFO] [stdout] 274 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:276:5 [INFO] [stdout] | [INFO] [stdout] 276 | / fn period(&self, operation: &Operation) -> usize { [INFO] [stdout] 277 | | use Operation::*; [INFO] [stdout] 278 | | fn lcm(a: usize, b: usize) -> usize { [INFO] [stdout] 279 | | // TODO: Compute it for real. For powers of two this works. [INFO] [stdout] ... | [INFO] [stdout] 289 | | } [INFO] [stdout] 290 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:292:5 [INFO] [stdout] | [INFO] [stdout] 292 | / /// Insert the operation and return it's node index [INFO] [stdout] 293 | | /// [INFO] [stdout] 294 | | /// If an algebraically identical node already exits, that index will be [INFO] [stdout] 295 | | /// returned instead. [INFO] [stdout] | |_________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:324:5 [INFO] [stdout] | [INFO] [stdout] 324 | / /// Adds a rational expression to the graph and return the result node [INFO] [stdout] 325 | | /// index. [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:362:5 [INFO] [stdout] | [INFO] [stdout] 362 | / fn make_lookup(&self, index: Index) -> Vec { [INFO] [stdout] 363 | | let node = &self[index]; [INFO] [stdout] 364 | | assert!(node.period <= 1024); [INFO] [stdout] 365 | | let mut result = Vec::with_capacity(node.period); [INFO] [stdout] ... | [INFO] [stdout] 373 | | result [INFO] [stdout] 374 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:376:5 [INFO] [stdout] | [INFO] [stdout] 376 | / pub(crate) fn lookup_tables(&mut self) { [INFO] [stdout] 377 | | use Operation::*; [INFO] [stdout] 378 | | // OPT: Don't create a bunch of lookup tables just to throw them away [INFO] [stdout] 379 | | // later. Analyze which nodes will be needed. [INFO] [stdout] ... | [INFO] [stdout] 391 | | } [INFO] [stdout] 392 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:394:5 [INFO] [stdout] | [INFO] [stdout] 394 | /// Remove unnecessary nodes [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:443:5 [INFO] [stdout] | [INFO] [stdout] 443 | / pub(crate) fn init(&mut self, start: usize) { [INFO] [stdout] 444 | | use Operation::*; [INFO] [stdout] 445 | | assert_eq!(start % CHUNK_SIZE, 0); [INFO] [stdout] 446 | | self.row = start; [INFO] [stdout] ... | [INFO] [stdout] 484 | | } [INFO] [stdout] 485 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:490:5 [INFO] [stdout] | [INFO] [stdout] 490 | / pub(crate) fn next(&mut self, trace_table: &TraceTable) -> FieldElement { [INFO] [stdout] 491 | | use Operation::*; [INFO] [stdout] 492 | | if self.row % CHUNK_SIZE > 0 { [INFO] [stdout] 493 | | let result = self.nodes.last().unwrap().values[self.row % CHUNK_SIZE].clone(); [INFO] [stdout] ... | [INFO] [stdout] 573 | | self.nodes.last().unwrap().values[0].clone() [INFO] [stdout] 574 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use crate::{ [INFO] [stdout] 2 | | algebraic_dag::AlgebraicGraph, [INFO] [stdout] 3 | | channel::{ProverChannel, RandomGenerator, Writable}, [INFO] [stdout] 4 | | constraints::Constraints, [INFO] [stdout] ... | [INFO] [stdout] 1180 | | } [INFO] [stdout] 1181 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:55:1 [INFO] [stdout] | [INFO] [stdout] 55 | struct PolyLDE(Vec>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | struct PolyLDE(Vec>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:92:1 [INFO] [stdout] | [INFO] [stdout] 92 | / struct FriLeaves { [INFO] [stdout] 93 | | coset_size: usize, [INFO] [stdout] 94 | | layer: MmapVec, [INFO] [stdout] 95 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | coset_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | layer: MmapVec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:499:1 [INFO] [stdout] | [INFO] [stdout] 499 | / fn extract_trace_coset(trace_lde: &PolyLDE, size: usize) -> TraceTable { [INFO] [stdout] 500 | | let trace_lde: &[MmapVec] = &trace_lde.0; [INFO] [stdout] 501 | | let lde_size = trace_lde[0].len(); [INFO] [stdout] 502 | | let mut trace_coset = TraceTable::new(size, trace_lde.len()); [INFO] [stdout] ... | [INFO] [stdout] 512 | | trace_coset [INFO] [stdout] 513 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:515:1 [INFO] [stdout] | [INFO] [stdout] 515 | / fn get_indices(num: usize, bits: u32, proof: &mut ProverChannel) -> Vec { [INFO] [stdout] 516 | | let mut query_indices = Vec::with_capacity(num + 3); [INFO] [stdout] 517 | | while query_indices.len() < num { [INFO] [stdout] 518 | | let val: U256 = proof.get_random(); [INFO] [stdout] ... | [INFO] [stdout] 527 | | query_indices [INFO] [stdout] 528 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:530:1 [INFO] [stdout] | [INFO] [stdout] 530 | / fn get_constraint_polynomials( [INFO] [stdout] 531 | | trace_lde: &PolyLDE, [INFO] [stdout] 532 | | constraints: &Constraints, [INFO] [stdout] 533 | | constraint_coefficients: &[FieldElement], [INFO] [stdout] ... | [INFO] [stdout] 605 | | .collect() [INFO] [stdout] 606 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:608:1 [INFO] [stdout] | [INFO] [stdout] 608 | / fn oods_combine( [INFO] [stdout] 609 | | proof: &mut ProverChannel, [INFO] [stdout] 610 | | trace_polynomials: &[DensePolynomial], [INFO] [stdout] 611 | | constraint_polynomials: &[DensePolynomial], [INFO] [stdout] ... | [INFO] [stdout] 667 | | combined_polynomial [INFO] [stdout] 668 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:670:1 [INFO] [stdout] | [INFO] [stdout] 670 | / fn perform_fri_layering( [INFO] [stdout] 671 | | first_layer: MmapVec, [INFO] [stdout] 672 | | proof: &mut ProverChannel, [INFO] [stdout] 673 | | fri_layout: &[usize], [INFO] [stdout] ... | [INFO] [stdout] 791 | | Ok(fri_trees) [INFO] [stdout] 792 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:794:1 [INFO] [stdout] | [INFO] [stdout] 794 | / fn decommit_fri_layers_and_trees( [INFO] [stdout] 795 | | fri_trees: &[FriTree], [INFO] [stdout] 796 | | query_indices: &[usize], [INFO] [stdout] 797 | | proof: &mut ProverChannel, [INFO] [stdout] ... | [INFO] [stdout] 823 | | Ok(()) [INFO] [stdout] 824 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:97:1 [INFO] [stdout] | [INFO] [stdout] 97 | type FriTree = Tree; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use crate::polynomial::DensePolynomial; [INFO] [stdout] 2 | | use rayon::prelude::*; [INFO] [stdout] 3 | | use std::{ [INFO] [stdout] 4 | | ops::{Index, IndexMut}, [INFO] [stdout] ... | [INFO] [stdout] 128 | | } [INFO] [stdout] 129 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / impl TraceTable { [INFO] [stdout] 21 | | /// Constructs a zero-initialized trace table of the given size. [INFO] [stdout] 22 | | pub fn new(trace_length: usize, num_columns: usize) -> Self { [INFO] [stdout] 23 | | let mut values: MmapVec = MmapVec::with_capacity(trace_length * num_columns); [INFO] [stdout] ... | [INFO] [stdout] 90 | | } [INFO] [stdout] 91 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | /// Constructs a zero-initialized trace table of the given size. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / pub fn num_rows(&self) -> usize { [INFO] [stdout] 35 | | self.trace_length [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | / pub fn num_columns(&self) -> usize { [INFO] [stdout] 39 | | self.num_columns [INFO] [stdout] 40 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | / pub fn generator(&self) -> FieldElement { [INFO] [stdout] 43 | | FieldElement::root(self.trace_length).expect("No generator for trace table length.") [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn iter_row(&self, i: usize) -> impl Iterator { [INFO] [stdout] 47 | | // Delegate to Index which returns a row slice. [INFO] [stdout] 48 | | self[i].iter() [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / pub fn iter_column(&self, j: usize) -> impl Iterator { [INFO] [stdout] 52 | | self.values[j..].iter().step_by(self.num_columns) [INFO] [stdout] 53 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | / /// Extract the j-th column as a vector [INFO] [stdout] 56 | | /// [INFO] [stdout] 57 | | /// It allocates a potentially large new vector. Where possible, use [INFO] [stdout] 58 | | /// the index accessors or the column iterator instead. It is unfortunately [INFO] [stdout] 59 | | /// not possible to get a slice of a column (since the representation is [INFO] [stdout] 60 | | /// row first.) [INFO] [stdout] | |___________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | / pub fn interpolate(&self) -> Vec { [INFO] [stdout] 71 | | (0..self.num_columns()) [INFO] [stdout] 72 | | .into_par_iter() [INFO] [stdout] 73 | | // OPT: Use and FFT that can transform the entire table in one pass, [INFO] [stdout] ... | [INFO] [stdout] 89 | | .collect::>() [INFO] [stdout] 90 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:108:1 [INFO] [stdout] | [INFO] [stdout] 108 | / impl RandomGenerator for PublicCoin { [INFO] [stdout] 109 | | fn get_random(&mut self) -> proof_of_work::ChallengeSeed { [INFO] [stdout] 110 | | self.counter += 1; [INFO] [stdout] 111 | | // FIX: Use get_random::<[u8;32]>(); [INFO] [stdout] 112 | | proof_of_work::ChallengeSeed::from_bytes(self.digest) [INFO] [stdout] 113 | | } [INFO] [stdout] 114 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | / fn get_random(&mut self) -> proof_of_work::ChallengeSeed { [INFO] [stdout] 110 | | self.counter += 1; [INFO] [stdout] 111 | | // FIX: Use get_random::<[u8;32]>(); [INFO] [stdout] 112 | | proof_of_work::ChallengeSeed::from_bytes(self.digest) [INFO] [stdout] 113 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:135:1 [INFO] [stdout] | [INFO] [stdout] 135 | / impl RandomGenerator for PublicCoin { [INFO] [stdout] 136 | | fn get_random(&mut self) -> FieldElement { [INFO] [stdout] 137 | | const MASK: U256 = [INFO] [stdout] 138 | | u256h!("0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); [INFO] [stdout] ... | [INFO] [stdout] 146 | | } [INFO] [stdout] 147 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 136 | / fn get_random(&mut self) -> FieldElement { [INFO] [stdout] 137 | | const MASK: U256 = [INFO] [stdout] 138 | | u256h!("0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); [INFO] [stdout] 139 | | loop { [INFO] [stdout] ... | [INFO] [stdout] 145 | | } [INFO] [stdout] 146 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:149:1 [INFO] [stdout] | [INFO] [stdout] 149 | / impl RandomGenerator for PublicCoin { [INFO] [stdout] 150 | | fn get_random(&mut self) -> U256 { [INFO] [stdout] 151 | | U256::from_bytes_be(&self.get_random()) [INFO] [stdout] 152 | | } [INFO] [stdout] 153 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | / fn get_random(&mut self) -> U256 { [INFO] [stdout] 151 | | U256::from_bytes_be(&self.get_random()) [INFO] [stdout] 152 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:155:1 [INFO] [stdout] | [INFO] [stdout] 155 | / impl RandomGenerator<[u8; 32]> for PublicCoin { [INFO] [stdout] 156 | | fn get_random(&mut self) -> [u8; 32] { [INFO] [stdout] 157 | | let mut result = [0; 32]; [INFO] [stdout] 158 | | let mut keccak = Keccak::new_keccak256(); [INFO] [stdout] ... | [INFO] [stdout] 165 | | } [INFO] [stdout] 166 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | / fn get_random(&mut self) -> [u8; 32] { [INFO] [stdout] 157 | | let mut result = [0; 32]; [INFO] [stdout] 158 | | let mut keccak = Keccak::new_keccak256(); [INFO] [stdout] 159 | | keccak.update(&self.digest); [INFO] [stdout] ... | [INFO] [stdout] 164 | | result [INFO] [stdout] 165 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:168:1 [INFO] [stdout] | [INFO] [stdout] 168 | / impl RandomGenerator for ProverChannel [INFO] [stdout] 169 | | where [INFO] [stdout] 170 | | PublicCoin: RandomGenerator, [INFO] [stdout] 171 | | { [INFO] [stdout] ... | [INFO] [stdout] 174 | | } [INFO] [stdout] 175 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:172:5 [INFO] [stdout] | [INFO] [stdout] 172 | / fn get_random(&mut self) -> T { [INFO] [stdout] 173 | | self.coin.get_random() [INFO] [stdout] 174 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:177:1 [INFO] [stdout] | [INFO] [stdout] 177 | / impl RandomGenerator for VerifierChannel [INFO] [stdout] 178 | | where [INFO] [stdout] 179 | | PublicCoin: RandomGenerator, [INFO] [stdout] 180 | | { [INFO] [stdout] ... | [INFO] [stdout] 183 | | } [INFO] [stdout] 184 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | / fn get_random(&mut self) -> T { [INFO] [stdout] 182 | | self.coin.get_random() [INFO] [stdout] 183 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:116:1 [INFO] [stdout] | [INFO] [stdout] 116 | / impl Writable for ProverChannel { [INFO] [stdout] 117 | | fn write(&mut self, data: proof_of_work::Response) { [INFO] [stdout] 118 | | self.write(&data.nonce().to_be_bytes()[..]); [INFO] [stdout] 119 | | } [INFO] [stdout] 120 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | / fn write(&mut self, data: proof_of_work::Response) { [INFO] [stdout] 118 | | self.write(&data.nonce().to_be_bytes()[..]); [INFO] [stdout] 119 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:186:1 [INFO] [stdout] | [INFO] [stdout] 186 | / impl Writable<&[u8]> for PublicCoin { [INFO] [stdout] 187 | | fn write(&mut self, data: &[u8]) { [INFO] [stdout] 188 | | let mut result: [u8; 32] = [0; 32]; [INFO] [stdout] 189 | | let mut keccak = Keccak::new_keccak256(); [INFO] [stdout] ... | [INFO] [stdout] 196 | | } [INFO] [stdout] 197 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | / fn write(&mut self, data: &[u8]) { [INFO] [stdout] 188 | | let mut result: [u8; 32] = [0; 32]; [INFO] [stdout] 189 | | let mut keccak = Keccak::new_keccak256(); [INFO] [stdout] 190 | | keccak.update(&self.digest); [INFO] [stdout] ... | [INFO] [stdout] 195 | | self.counter = 0; [INFO] [stdout] 196 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:203:1 [INFO] [stdout] | [INFO] [stdout] 203 | / impl Writable<&[u8]> for ProverChannel { [INFO] [stdout] 204 | | fn write(&mut self, data: &[u8]) { [INFO] [stdout] 205 | | self.proof.extend_from_slice(data); [INFO] [stdout] 206 | | self.coin.write(data); [INFO] [stdout] 207 | | } [INFO] [stdout] 208 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | / fn write(&mut self, data: &[u8]) { [INFO] [stdout] 205 | | self.proof.extend_from_slice(data); [INFO] [stdout] 206 | | self.coin.write(data); [INFO] [stdout] 207 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:210:1 [INFO] [stdout] | [INFO] [stdout] 210 | / impl Writable<&Hash> for ProverChannel { [INFO] [stdout] 211 | | fn write(&mut self, data: &Hash) { [INFO] [stdout] 212 | | self.write(data.as_bytes()); [INFO] [stdout] 213 | | } [INFO] [stdout] 214 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | / fn write(&mut self, data: &Hash) { [INFO] [stdout] 212 | | self.write(data.as_bytes()); [INFO] [stdout] 213 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:216:1 [INFO] [stdout] | [INFO] [stdout] 216 | / impl Writable<&zkp_merkle_tree::Commitment> for ProverChannel { [INFO] [stdout] 217 | | fn write(&mut self, data: &zkp_merkle_tree::Commitment) { [INFO] [stdout] 218 | | self.write(data.hash()) [INFO] [stdout] 219 | | } [INFO] [stdout] 220 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | / fn write(&mut self, data: &zkp_merkle_tree::Commitment) { [INFO] [stdout] 218 | | self.write(data.hash()) [INFO] [stdout] 219 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:222:1 [INFO] [stdout] | [INFO] [stdout] 222 | / impl Writable<&zkp_merkle_tree::Proof> for ProverChannel { [INFO] [stdout] 223 | | fn write(&mut self, data: &zkp_merkle_tree::Proof) { [INFO] [stdout] 224 | | for hash in data.hashes() { [INFO] [stdout] 225 | | self.write(hash) [INFO] [stdout] 226 | | } [INFO] [stdout] 227 | | } [INFO] [stdout] 228 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | / fn write(&mut self, data: &zkp_merkle_tree::Proof) { [INFO] [stdout] 224 | | for hash in data.hashes() { [INFO] [stdout] 225 | | self.write(hash) [INFO] [stdout] 226 | | } [INFO] [stdout] 227 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:231:1 [INFO] [stdout] | [INFO] [stdout] 231 | / impl Writable<&[FieldElement]> for ProverChannel { [INFO] [stdout] 232 | | fn write(&mut self, data: &[FieldElement]) { [INFO] [stdout] 233 | | let mut container = Vec::with_capacity(32 * data.len()); [INFO] [stdout] 234 | | for element in data { [INFO] [stdout] ... | [INFO] [stdout] 240 | | } [INFO] [stdout] 241 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:232:5 [INFO] [stdout] | [INFO] [stdout] 232 | / fn write(&mut self, data: &[FieldElement]) { [INFO] [stdout] 233 | | let mut container = Vec::with_capacity(32 * data.len()); [INFO] [stdout] 234 | | for element in data { [INFO] [stdout] 235 | | for byte in &element.as_montgomery().to_bytes_be() { [INFO] [stdout] ... | [INFO] [stdout] 239 | | self.write(container.as_slice()); [INFO] [stdout] 240 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:243:1 [INFO] [stdout] | [INFO] [stdout] 243 | / impl Writable<&FieldElement> for ProverChannel { [INFO] [stdout] 244 | | fn write(&mut self, data: &FieldElement) { [INFO] [stdout] 245 | | // TODO: Avoid accessing FieldElement members directly [INFO] [stdout] 246 | | self.write(&data.as_montgomery().to_bytes_be()[..]); [INFO] [stdout] 247 | | } [INFO] [stdout] 248 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:244:5 [INFO] [stdout] | [INFO] [stdout] 244 | / fn write(&mut self, data: &FieldElement) { [INFO] [stdout] 245 | | // TODO: Avoid accessing FieldElement members directly [INFO] [stdout] 246 | | self.write(&data.as_montgomery().to_bytes_be()[..]); [INFO] [stdout] 247 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:252:1 [INFO] [stdout] | [INFO] [stdout] 252 | / impl Writable> for ProverChannel { [INFO] [stdout] 253 | | fn write(&mut self, data: Vec) { [INFO] [stdout] 254 | | for element in data { [INFO] [stdout] 255 | | self.write(element) [INFO] [stdout] 256 | | } [INFO] [stdout] 257 | | } [INFO] [stdout] 258 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:253:5 [INFO] [stdout] | [INFO] [stdout] 253 | / fn write(&mut self, data: Vec) { [INFO] [stdout] 254 | | for element in data { [INFO] [stdout] 255 | | self.write(element) [INFO] [stdout] 256 | | } [INFO] [stdout] 257 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:260:1 [INFO] [stdout] | [INFO] [stdout] 260 | / impl Writable for ProverChannel { [INFO] [stdout] 261 | | fn write(&mut self, data: U256) { [INFO] [stdout] 262 | | self.write(&data.to_bytes_be()[..]); [INFO] [stdout] 263 | | } [INFO] [stdout] 264 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:261:5 [INFO] [stdout] | [INFO] [stdout] 261 | / fn write(&mut self, data: U256) { [INFO] [stdout] 262 | | self.write(&data.to_bytes_be()[..]); [INFO] [stdout] 263 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:122:1 [INFO] [stdout] | [INFO] [stdout] 122 | / impl Replayable for VerifierChannel { [INFO] [stdout] 123 | | fn replay(&mut self) -> proof_of_work::Response { [INFO] [stdout] 124 | | let mut holder = [0_u8; 8]; [INFO] [stdout] 125 | | let from = self.proof_index; [INFO] [stdout] ... | [INFO] [stdout] 132 | | } [INFO] [stdout] 133 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / fn replay(&mut self) -> proof_of_work::Response { [INFO] [stdout] 124 | | let mut holder = [0_u8; 8]; [INFO] [stdout] 125 | | let from = self.proof_index; [INFO] [stdout] 126 | | let to = from + 8; [INFO] [stdout] ... | [INFO] [stdout] 131 | | proof_of_work::Response::from_nonce(nonce) [INFO] [stdout] 132 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:266:1 [INFO] [stdout] | [INFO] [stdout] 266 | / impl Replayable for VerifierChannel { [INFO] [stdout] 267 | | fn replay(&mut self) -> Hash { [INFO] [stdout] 268 | | let hash: [u8; 32] = self.replay(); [INFO] [stdout] 269 | | Hash::new(hash) [INFO] [stdout] 270 | | } [INFO] [stdout] 271 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:267:5 [INFO] [stdout] | [INFO] [stdout] 267 | / fn replay(&mut self) -> Hash { [INFO] [stdout] 268 | | let hash: [u8; 32] = self.replay(); [INFO] [stdout] 269 | | Hash::new(hash) [INFO] [stdout] 270 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | / impl Replayable<[u8; 32]> for VerifierChannel { [INFO] [stdout] 274 | | fn replay(&mut self) -> [u8; 32] { [INFO] [stdout] 275 | | let mut holder = [0_u8; 32]; [INFO] [stdout] 276 | | let from = self.proof_index; [INFO] [stdout] ... | [INFO] [stdout] 283 | | } [INFO] [stdout] 284 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:274:5 [INFO] [stdout] | [INFO] [stdout] 274 | / fn replay(&mut self) -> [u8; 32] { [INFO] [stdout] 275 | | let mut holder = [0_u8; 32]; [INFO] [stdout] 276 | | let from = self.proof_index; [INFO] [stdout] 277 | | let to = from + 32; [INFO] [stdout] ... | [INFO] [stdout] 282 | | holder [INFO] [stdout] 283 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:286:1 [INFO] [stdout] | [INFO] [stdout] 286 | / impl Replayable for VerifierChannel { [INFO] [stdout] 287 | | fn replay(&mut self) -> U256 { [INFO] [stdout] 288 | | U256::from_bytes_be(&Replayable::replay(self)) [INFO] [stdout] 289 | | } [INFO] [stdout] 290 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:287:5 [INFO] [stdout] | [INFO] [stdout] 287 | / fn replay(&mut self) -> U256 { [INFO] [stdout] 288 | | U256::from_bytes_be(&Replayable::replay(self)) [INFO] [stdout] 289 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:292:1 [INFO] [stdout] | [INFO] [stdout] 292 | / impl Replayable for VerifierChannel { [INFO] [stdout] 293 | | fn replay(&mut self) -> FieldElement { [INFO] [stdout] 294 | | FieldElement::from_montgomery(Replayable::replay(self)) [INFO] [stdout] 295 | | } [INFO] [stdout] ... | [INFO] [stdout] 310 | | } [INFO] [stdout] 311 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | / fn replay(&mut self) -> FieldElement { [INFO] [stdout] 294 | | FieldElement::from_montgomery(Replayable::replay(self)) [INFO] [stdout] 295 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:297:5 [INFO] [stdout] | [INFO] [stdout] 297 | / fn replay_many(&mut self, len: usize) -> Vec { [INFO] [stdout] 298 | | let start_index = self.proof_index; [INFO] [stdout] 299 | | let mut ret = Vec::with_capacity(len); [INFO] [stdout] 300 | | for _ in 0..len { [INFO] [stdout] ... | [INFO] [stdout] 309 | | ret [INFO] [stdout] 310 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:67:1 [INFO] [stdout] | [INFO] [stdout] 67 | / impl From> for ProverChannel { [INFO] [stdout] 68 | | fn from(proof_data: Vec) -> Self { [INFO] [stdout] 69 | | Self { [INFO] [stdout] 70 | | coin: PublicCoin::new(), [INFO] [stdout] ... | [INFO] [stdout] 73 | | } [INFO] [stdout] 74 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/channel.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / fn from(proof_data: Vec) -> Self { [INFO] [stdout] 69 | | Self { [INFO] [stdout] 70 | | coin: PublicCoin::new(), [INFO] [stdout] 71 | | proof: proof_data, [INFO] [stdout] 72 | | } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | / impl From for RationalExpression { [INFO] [stdout] 39 | | fn from(value: i32) -> Self { [INFO] [stdout] 40 | | Self::Constant(value.into()) [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | / fn from(value: i32) -> Self { [INFO] [stdout] 40 | | Self::Constant(value.into()) [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | / impl From<&FieldElement> for RationalExpression { [INFO] [stdout] 45 | | fn from(value: &FieldElement) -> Self { [INFO] [stdout] 46 | | Self::Constant(value.clone()) [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | / fn from(value: &FieldElement) -> Self { [INFO] [stdout] 46 | | Self::Constant(value.clone()) [INFO] [stdout] 47 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:66:1 [INFO] [stdout] | [INFO] [stdout] 66 | / impl From for Error { [INFO] [stdout] 67 | | fn from(err: MerkleError) -> Self { [INFO] [stdout] 68 | | Self::Merkle(err) [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | / fn from(err: MerkleError) -> Self { [INFO] [stdout] 68 | | Self::Merkle(err) [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | / impl From for Error { [INFO] [stdout] 43 | | fn from(err: MerkleError) -> Self { [INFO] [stdout] 44 | | Self::MerkleFailed(err) [INFO] [stdout] 45 | | } [INFO] [stdout] 46 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / fn from(err: MerkleError) -> Self { [INFO] [stdout] 44 | | Self::MerkleFailed(err) [INFO] [stdout] 45 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:48:1 [INFO] [stdout] | [INFO] [stdout] 48 | / impl From for Error { [INFO] [stdout] 49 | | fn from(err: VerifierError) -> Self { [INFO] [stdout] 50 | | Self::VerificationFailed(err) [INFO] [stdout] 51 | | } [INFO] [stdout] 52 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | / fn from(err: VerifierError) -> Self { [INFO] [stdout] 50 | | Self::VerificationFailed(err) [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / impl std::fmt::Debug for DensePolynomial { [INFO] [stdout] 17 | | fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 18 | | write!(fmt, "DensePolynomial(degree = {:?})", self.degree()) [INFO] [stdout] 19 | | } [INFO] [stdout] 20 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/polynomial.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 18 | | write!(fmt, "DensePolynomial(degree = {:?})", self.degree()) [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | / impl std::fmt::Debug for Index { [INFO] [stdout] 107 | | fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 108 | | write!(fmt, "{:>3}", self.0) [INFO] [stdout] 109 | | } [INFO] [stdout] 110 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | / fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 108 | | write!(fmt, "{:>3}", self.0) [INFO] [stdout] 109 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:112:1 [INFO] [stdout] | [INFO] [stdout] 112 | / impl std::fmt::Debug for Table { [INFO] [stdout] 113 | | fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 114 | | write!(fmt, "Table(len = {:>3})", self.0.len()) [INFO] [stdout] 115 | | } [INFO] [stdout] 116 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | / fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 114 | | write!(fmt, "Table(len = {:>3})", self.0.len()) [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:118:1 [INFO] [stdout] | [INFO] [stdout] 118 | / impl std::fmt::Debug for AlgebraicGraph { [INFO] [stdout] 119 | | fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 120 | | writeln!(fmt, "AlgebraicGraph:")?; [INFO] [stdout] 121 | | for (i, n) in self.nodes.iter().enumerate() { [INFO] [stdout] ... | [INFO] [stdout] 132 | | } [INFO] [stdout] 133 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | / fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 120 | | writeln!(fmt, "AlgebraicGraph:")?; [INFO] [stdout] 121 | | for (i, n) in self.nodes.iter().enumerate() { [INFO] [stdout] 122 | | writeln!( [INFO] [stdout] ... | [INFO] [stdout] 131 | | Ok(()) [INFO] [stdout] 132 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | / impl fmt::Display for Error { [INFO] [stdout] 12 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 13 | | use Error::*; [INFO] [stdout] 14 | | match *self { [INFO] [stdout] ... | [INFO] [stdout] 17 | | } [INFO] [stdout] 18 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/constraints.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 13 | | use Error::*; [INFO] [stdout] 14 | | match *self { [INFO] [stdout] 15 | | InvalidTraceLength => write!(f, "Invalid trace length (must be power of two)"), [INFO] [stdout] 16 | | } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | / impl fmt::Display for Error { [INFO] [stdout] 32 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 33 | | use Error::*; [INFO] [stdout] 34 | | match *self { [INFO] [stdout] ... | [INFO] [stdout] 63 | | } [INFO] [stdout] 64 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 33 | | use Error::*; [INFO] [stdout] 34 | | match *self { [INFO] [stdout] 35 | | RootUnavailable => write!(f, "The prime field doesn't have a root of this order"), [INFO] [stdout] ... | [INFO] [stdout] 62 | | } [INFO] [stdout] 63 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | / impl fmt::Display for Error { [INFO] [stdout] 32 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 33 | | use Error::*; [INFO] [stdout] 34 | | match *self { [INFO] [stdout] ... | [INFO] [stdout] 39 | | } [INFO] [stdout] 40 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 33 | | use Error::*; [INFO] [stdout] 34 | | match *self { [INFO] [stdout] 35 | | RootUnavailable => write!(f, "The prime field doesn't have a root of this order"), [INFO] [stdout] ... | [INFO] [stdout] 38 | | } [INFO] [stdout] 39 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | / impl Div for RationalExpression { [INFO] [stdout] 79 | | type Output = Self; [INFO] [stdout] 80 | | [INFO] [stdout] 81 | | fn div(self, other: Self) -> Self { [INFO] [stdout] 82 | | self * other.inv() [INFO] [stdout] 83 | | } [INFO] [stdout] 84 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | type Output = Self; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | / fn div(self, other: Self) -> Self { [INFO] [stdout] 82 | | self * other.inv() [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:60:1 [INFO] [stdout] | [INFO] [stdout] 60 | / impl Sub for RationalExpression { [INFO] [stdout] 61 | | type Output = Self; [INFO] [stdout] 62 | | [INFO] [stdout] 63 | | fn sub(self, other: Self) -> Self { [INFO] [stdout] 64 | | self + other.neg() [INFO] [stdout] 65 | | } [INFO] [stdout] 66 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | type Output = Self; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | / fn sub(self, other: Self) -> Self { [INFO] [stdout] 64 | | self + other.neg() [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:50:1 [INFO] [stdout] | [INFO] [stdout] 50 | / impl Add for RationalExpression { [INFO] [stdout] 51 | | type Output = Self; [INFO] [stdout] 52 | | [INFO] [stdout] 53 | | fn add(self, other: Self) -> Self { [INFO] [stdout] 54 | | Self::Add(Box::new(self), Box::new(other)) [INFO] [stdout] 55 | | } [INFO] [stdout] 56 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | type Output = Self; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / fn add(self, other: Self) -> Self { [INFO] [stdout] 54 | | Self::Add(Box::new(self), Box::new(other)) [INFO] [stdout] 55 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:68:1 [INFO] [stdout] | [INFO] [stdout] 68 | / impl Mul for RationalExpression { [INFO] [stdout] 69 | | type Output = Self; [INFO] [stdout] 70 | | [INFO] [stdout] 71 | | fn mul(self, other: Self) -> Self { [INFO] [stdout] 72 | | Self::Mul(Box::new(self), Box::new(other)) [INFO] [stdout] 73 | | } [INFO] [stdout] 74 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | type Output = Self; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | / fn mul(self, other: Self) -> Self { [INFO] [stdout] 72 | | Self::Mul(Box::new(self), Box::new(other)) [INFO] [stdout] 73 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:136:1 [INFO] [stdout] | [INFO] [stdout] 136 | / impl std::ops::Index for AlgebraicGraph { [INFO] [stdout] 137 | | type Output = Node; [INFO] [stdout] 138 | | [INFO] [stdout] 139 | | fn index(&self, index: Index) -> &Self::Output { [INFO] [stdout] 140 | | &self.nodes[index.0] [INFO] [stdout] 141 | | } [INFO] [stdout] 142 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 137 | type Output = Node; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/algebraic_dag.rs:139:5 [INFO] [stdout] | [INFO] [stdout] 139 | / fn index(&self, index: Index) -> &Self::Output { [INFO] [stdout] 140 | | &self.nodes[index.0] [INFO] [stdout] 141 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:93:1 [INFO] [stdout] | [INFO] [stdout] 93 | /// Returns a field [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | type Output = FieldElement; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | / fn index(&self, (i, j): (usize, usize)) -> &Self::Output { [INFO] [stdout] 98 | | assert!(i < self.trace_length); [INFO] [stdout] 99 | | assert!(j < self.num_columns); [INFO] [stdout] 100 | | &self.values[i * self.num_columns + j] [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:113:1 [INFO] [stdout] | [INFO] [stdout] 113 | /// Returns a row as a slice [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | type Output = [FieldElement]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | / fn index(&self, i: usize) -> &[FieldElement] { [INFO] [stdout] 118 | | assert!(i < self.trace_length); [INFO] [stdout] 119 | | &self.values[i * self.num_columns..(i + 1) * self.num_columns] [INFO] [stdout] 120 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:104:1 [INFO] [stdout] | [INFO] [stdout] 104 | /// Returns a mutable field [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | / fn index_mut(&mut self, (i, j): (usize, usize)) -> &mut Self::Output { [INFO] [stdout] 107 | | assert!(i < self.trace_length); [INFO] [stdout] 108 | | assert!(j < self.num_columns); [INFO] [stdout] 109 | | &mut self.values[i * self.num_columns + j] [INFO] [stdout] 110 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:123:1 [INFO] [stdout] | [INFO] [stdout] 123 | /// Returns a mutable row as a slice [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/trace_table.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | / fn index_mut(&mut self, i: usize) -> &mut [FieldElement] { [INFO] [stdout] 126 | | assert!(i < self.trace_length); [INFO] [stdout] 127 | | &mut self.values[i * self.num_columns..(i + 1) * self.num_columns] [INFO] [stdout] 128 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | / impl Sum for RationalExpression { [INFO] [stdout] 87 | | fn sum(mut iter: I) -> Self [INFO] [stdout] 88 | | where [INFO] [stdout] 89 | | I: Iterator, [INFO] [stdout] ... | [INFO] [stdout] 96 | | } [INFO] [stdout] 97 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/rational_expression.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / fn sum(mut iter: I) -> Self [INFO] [stdout] 88 | | where [INFO] [stdout] 89 | | I: Iterator, [INFO] [stdout] 90 | | { [INFO] [stdout] ... | [INFO] [stdout] 95 | | } [INFO] [stdout] 96 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:525:1 [INFO] [stdout] | [INFO] [stdout] 525 | / impl error::Error for Error { [INFO] [stdout] 526 | | fn source(&self) -> Option<&(dyn error::Error + 'static)> { [INFO] [stdout] 527 | | match *self { [INFO] [stdout] 528 | | Self::Merkle(ref e) => Some(e), [INFO] [stdout] ... | [INFO] [stdout] 531 | | } [INFO] [stdout] 532 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/verifier.rs:526:5 [INFO] [stdout] | [INFO] [stdout] 526 | / fn source(&self) -> Option<&(dyn error::Error + 'static)> { [INFO] [stdout] 527 | | match *self { [INFO] [stdout] 528 | | Self::Merkle(ref e) => Some(e), [INFO] [stdout] 529 | | _ => None, [INFO] [stdout] 530 | | } [INFO] [stdout] 531 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:57:1 [INFO] [stdout] | [INFO] [stdout] 57 | /// Merkle trees over trace table LDE and constraint LDE [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | type Leaf = Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | / fn len(&self) -> usize { [INFO] [stdout] 65 | | self.0.first().map_or(0, MmapVec::len) [INFO] [stdout] 66 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / fn leaf(&self, index: usize) -> Self::Leaf { [INFO] [stdout] 69 | | let mut ret = Vec::with_capacity(self.0.len()); [INFO] [stdout] 70 | | for item in &self.0 { [INFO] [stdout] 71 | | ret.push(item[index].as_montgomery().clone()) [INFO] [stdout] 72 | | } [INFO] [stdout] 73 | | ret [INFO] [stdout] 74 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | / fn leaf_hash(&self, index: usize) -> Hash { [INFO] [stdout] 77 | | if self.0.len() == 1 { [INFO] [stdout] 78 | | // For a single element, return its hash. [INFO] [stdout] 79 | | self.0[0][index].hash() [INFO] [stdout] ... | [INFO] [stdout] 87 | | } [INFO] [stdout] 88 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:100:1 [INFO] [stdout] | [INFO] [stdout] 100 | / impl VectorCommitment for FriLeaves { [INFO] [stdout] 101 | | type Leaf = Vec; [INFO] [stdout] 102 | | [INFO] [stdout] 103 | | fn len(&self) -> usize { [INFO] [stdout] ... | [INFO] [stdout] 132 | | } [INFO] [stdout] 133 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | type Leaf = Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | / fn len(&self) -> usize { [INFO] [stdout] 104 | | debug_assert_eq!(self.layer.len() % self.coset_size, 0); [INFO] [stdout] 105 | | self.layer.len() / self.coset_size [INFO] [stdout] 106 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | / fn leaf(&self, index: usize) -> Self::Leaf { [INFO] [stdout] 109 | | let mut internal_leaf = Vec::with_capacity(self.coset_size); [INFO] [stdout] 110 | | for j in 0..self.coset_size { [INFO] [stdout] 111 | | internal_leaf.push( [INFO] [stdout] ... | [INFO] [stdout] 117 | | internal_leaf [INFO] [stdout] 118 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/prover.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / fn leaf_hash(&self, index: usize) -> Hash { [INFO] [stdout] 121 | | if self.coset_size == 1 { [INFO] [stdout] 122 | | // For a single element, return its hash. [INFO] [stdout] 123 | | self.layer[index].hash() [INFO] [stdout] ... | [INFO] [stdout] 131 | | } [INFO] [stdout] 132 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 328 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 36.29s [INFO] running `Command { std: "docker" "inspect" "d72e67719f9510b498ba4029f66e09f390f18a2005bae77c7796baa64d4d355d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d72e67719f9510b498ba4029f66e09f390f18a2005bae77c7796baa64d4d355d", kill_on_drop: false }` [INFO] [stdout] d72e67719f9510b498ba4029f66e09f390f18a2005bae77c7796baa64d4d355d