[INFO] crate sudokugen 0.1.0 is already in cache [INFO] documenting sudokugen-0.1.0 against master#394e1b40d264aa6928811919c1124fa248e7d802 for pr-73566 [INFO] extracting crate sudokugen 0.1.0 into /workspace/builds/worker-6/source [INFO] validating manifest of crates.io crate sudokugen 0.1.0 on toolchain 394e1b40d264aa6928811919c1124fa248e7d802 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+394e1b40d264aa6928811919c1124fa248e7d802" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate sudokugen 0.1.0 [INFO] finished tweaking crates.io crate sudokugen 0.1.0 [INFO] tweaked toml for crates.io crate sudokugen 0.1.0 written to /workspace/builds/worker-6/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+394e1b40d264aa6928811919c1124fa248e7d802" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+394e1b40d264aa6928811919c1124fa248e7d802" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "+394e1b40d264aa6928811919c1124fa248e7d802" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ac74d874fb4616ab068acaf7bb2acec78d9615e1b7bf20edf8d8e92870575322 [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" "ac74d874fb4616ab068acaf7bb2acec78d9615e1b7bf20edf8d8e92870575322", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ac74d874fb4616ab068acaf7bb2acec78d9615e1b7bf20edf8d8e92870575322", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ac74d874fb4616ab068acaf7bb2acec78d9615e1b7bf20edf8d8e92870575322", kill_on_drop: false }` [INFO] [stdout] ac74d874fb4616ab068acaf7bb2acec78d9615e1b7bf20edf8d8e92870575322 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "+394e1b40d264aa6928811919c1124fa248e7d802" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 93ee26db319df0405c7e7b53fcae3adef2ddfc0fb57fdd6c3b1e085f83b324be [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" "93ee26db319df0405c7e7b53fcae3adef2ddfc0fb57fdd6c3b1e085f83b324be", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking ppv-lite86 v0.2.8 [INFO] [stderr] Checking either v1.5.3 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling memoffset v0.5.4 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling rayon v1.3.1 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking crossbeam-queue v0.2.3 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Checking rayon-core v1.7.1 [INFO] [stderr] Documenting sudokugen v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:133:1 [INFO] [stdout] | [INFO] [stdout] 133 | pub use board::Board; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | #![warn(missing_doc_code_examples)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:134:1 [INFO] [stdout] | [INFO] [stdout] 134 | pub use solver::generator::generate; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:135:1 [INFO] [stdout] | [INFO] [stdout] 135 | pub use solver::solve; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / //! The Board module contains representations of a sudoku [`Board`] [INFO] [stdout] 2 | | //! as well as the representation of a cell location inside a board [INFO] [stdout] 3 | | //! [`CellLoc`]. [INFO] [stdout] 4 | | //! [INFO] [stdout] ... | [INFO] [stdout] 13 | | //! [`CellLoc`]: struct.CellLoc.html [INFO] [stdout] 14 | | //! [`cell_at`]: struct.Board.html#method.cell_at [INFO] [stdout] | |_________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | base_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | cells: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:60:1 [INFO] [stdout] | [INFO] [stdout] 60 | / /// Represents a cell location in the board. [INFO] [stdout] 61 | | /// [INFO] [stdout] 62 | | /// CellLoc structures are a shallow [INFO] [stdout] 63 | | /// abstraction of the indice of the cell in the board, using them allows access [INFO] [stdout] 64 | | /// helper functions to navigate the board and access cell by a more intuitive [INFO] [stdout] 65 | | /// line/column pair [INFO] [stdout] | |____________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | base_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | idx: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:541:1 [INFO] [stdout] | [INFO] [stdout] 541 | / /// Error returned when the representation of the board cannot be parsed successfully. [INFO] [stdout] 542 | | /// [INFO] [stdout] 543 | | /// Boards have constraints that cannot be represented in easy to transfer formats (such as strings), [INFO] [stdout] 544 | | /// A 9x9 board for instance must have exactly 81 cells with values ranging between 1 and 9. [INFO] [stdout] 545 | | /// This error is returned when those constrainst are not met. [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:83:1 [INFO] [stdout] | [INFO] [stdout] 83 | / impl CellLoc { [INFO] [stdout] 84 | | /// Returns a cell representing the location at line `l` and column `c`. [INFO] [stdout] 85 | | /// The third argument represents the intrinsic size of the board, for a [INFO] [stdout] 86 | | /// regular 9 by 9 board the base size is 3 (i.e. sqrt(9)) [INFO] [stdout] ... | [INFO] [stdout] 290 | | } [INFO] [stdout] 291 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | / fn calculate_possible_values(&self, board: &Board) -> BTreeSet { [INFO] [stdout] 157 | | let mut possible_values: BTreeSet = (1..=board.base_size.pow(2) as u8).collect(); [INFO] [stdout] 158 | | [INFO] [stdout] 159 | | let values_iter = self [INFO] [stdout] ... | [INFO] [stdout] 169 | | possible_values [INFO] [stdout] 170 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:293:1 [INFO] [stdout] | [INFO] [stdout] 293 | / impl Board { [INFO] [stdout] 294 | | /// Creates a new empty board. The `base_size` parameter represents the size [INFO] [stdout] 295 | | /// of the board, base size is the square root of the the width of the board. [INFO] [stdout] 296 | | /// so for instance a 9x9 board has a base size of 3, a 16x16 board has a base size [INFO] [stdout] ... | [INFO] [stdout] 506 | | } [INFO] [stdout] 507 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `[board]` cannot be resolved, ignoring it. [INFO] [stdout] --> src/board.rs:461:31 [INFO] [stdout] | [INFO] [stdout] 461 | /// Returns a new sudoku [`board`] rotated clockwise by 90deg. [INFO] [stdout] | ^^^^^^^ cannot be resolved, ignoring [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(intra_doc_link_resolution_failure)]` on by default [INFO] [stdout] = help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:84:1 [INFO] [stdout] | [INFO] [stdout] 84 | /// An errror to reperesent that this board is not solvable in it's current state [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:103:1 [INFO] [stdout] | [INFO] [stdout] 103 | / struct SudokuSolver { [INFO] [stdout] 104 | | board: Board, [INFO] [stdout] 105 | | candidate_cache: CandidateCache, [INFO] [stdout] 106 | | move_log: Vec, [INFO] [stdout] 107 | | random: bool, [INFO] [stdout] 108 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | board: Board, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | candidate_cache: CandidateCache, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | move_log: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | random: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:48:1 [INFO] [stdout] | [INFO] [stdout] 48 | / enum Strategy { [INFO] [stdout] 49 | | NakedSingle, [INFO] [stdout] 50 | | HiddenSingle, [INFO] [stdout] 51 | | Guess, [INFO] [stdout] 52 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | NakedSingle, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | HiddenSingle, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | Guess, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:55:1 [INFO] [stdout] | [INFO] [stdout] 55 | / enum MoveLog { [INFO] [stdout] 56 | | SetValue { [INFO] [stdout] 57 | | strategy: Strategy, [INFO] [stdout] 58 | | cell: CellLoc, [INFO] [stdout] ... | [INFO] [stdout] 61 | | }, [INFO] [stdout] 62 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | / SetValue { [INFO] [stdout] 57 | | strategy: Strategy, [INFO] [stdout] 58 | | cell: CellLoc, [INFO] [stdout] 59 | | value: u8, [INFO] [stdout] 60 | | undo_candidates: candidate_cache::UndoSetValue, [INFO] [stdout] 61 | | }, [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | strategy: Strategy, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | cell: CellLoc, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | value: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | undo_candidates: candidate_cache::UndoSetValue, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use super::indexed_map::{Indexed, IndexedMap, Map}; [INFO] [stdout] 2 | | use crate::board::{Board, CellLoc}; [INFO] [stdout] 3 | | use std::fmt; [INFO] [stdout] 4 | | use std::{ [INFO] [stdout] ... | [INFO] [stdout] 472 | | } [INFO] [stdout] 473 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct NoCadidatesLeftError(CellLoc); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:39:33 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct NoCadidatesLeftError(CellLoc); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:48:1 [INFO] [stdout] | [INFO] [stdout] 48 | / pub struct UndoSetValue { [INFO] [stdout] 49 | | moves: Vec<(u8, CellLoc, Block)>, [INFO] [stdout] 50 | | options: (CellLoc, Option>), [INFO] [stdout] 51 | | affected_cell_options: Vec<(CellLoc, u8)>, [INFO] [stdout] 52 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | moves: Vec<(u8, CellLoc, Block)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | options: (CellLoc, Option>), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | affected_cell_options: Vec<(CellLoc, u8)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / pub struct Candidates<'a> { [INFO] [stdout] 65 | | pub value: &'a u8, [INFO] [stdout] 66 | | pub block: &'a Block, [INFO] [stdout] 67 | | pub cells: &'a BTreeSet, [INFO] [stdout] 68 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | pub value: &'a u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | pub block: &'a Block, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub cells: &'a BTreeSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | / pub struct CandidateCache { [INFO] [stdout] 72 | | possible_values: IndexedMap>, [INFO] [stdout] 73 | | candidate_cells: HashMap<(Block, u8), BTreeSet>, [INFO] [stdout] 74 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | possible_values: IndexedMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | candidate_cells: HashMap<(Block, u8), BTreeSet>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / pub enum Block { [INFO] [stdout] 11 | | Line(usize), [INFO] [stdout] 12 | | Col(usize), [INFO] [stdout] 13 | | Square(usize), [INFO] [stdout] 14 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | Line(usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | Col(usize), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | Square(usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / impl Block { [INFO] [stdout] 17 | | fn with_value(&self, value: u8) -> (Self, u8) { [INFO] [stdout] 18 | | (*self, value) [INFO] [stdout] 19 | | } [INFO] [stdout] 20 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / fn with_value(&self, value: u8) -> (Self, u8) { [INFO] [stdout] 18 | | (*self, value) [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl CellLoc { [INFO] [stdout] 23 | | fn get_blocks_(&self) -> [Block; 3] { [INFO] [stdout] 24 | | [ [INFO] [stdout] 25 | | Block::Line(self.line()), [INFO] [stdout] ... | [INFO] [stdout] 29 | | } [INFO] [stdout] 30 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / fn get_blocks_(&self) -> [Block; 3] { [INFO] [stdout] 24 | | [ [INFO] [stdout] 25 | | Block::Line(self.line()), [INFO] [stdout] 26 | | Block::Col(self.col()), [INFO] [stdout] 27 | | Block::Square(self.square()), [INFO] [stdout] 28 | | ] [INFO] [stdout] 29 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:54:1 [INFO] [stdout] | [INFO] [stdout] 54 | / impl UndoSetValue { [INFO] [stdout] 55 | | pub fn alternative_options(&self) -> &Option> { [INFO] [stdout] 56 | | &self.options.1 [INFO] [stdout] 57 | | } [INFO] [stdout] ... | [INFO] [stdout] 61 | | // } [INFO] [stdout] 62 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | / pub fn alternative_options(&self) -> &Option> { [INFO] [stdout] 56 | | &self.options.1 [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:76:1 [INFO] [stdout] | [INFO] [stdout] 76 | / impl CandidateCache { [INFO] [stdout] 77 | | pub fn from_board(board: &Board) -> Self { [INFO] [stdout] 78 | | let possible_values = Self::calculate_possible_values(board); [INFO] [stdout] 79 | | [INFO] [stdout] ... | [INFO] [stdout] 282 | | } [INFO] [stdout] 283 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | / pub fn from_board(board: &Board) -> Self { [INFO] [stdout] 78 | | let possible_values = Self::calculate_possible_values(board); [INFO] [stdout] 79 | | [INFO] [stdout] 80 | | let mut candidate_cache = CandidateCache { [INFO] [stdout] ... | [INFO] [stdout] 103 | | candidate_cache [INFO] [stdout] 104 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | / fn calculate_possible_values(board: &Board) -> IndexedMap> { [INFO] [stdout] 107 | | let mut possible_values = IndexedMap::new(board.get_base_size().pow(4)); [INFO] [stdout] 108 | | for cell in board.iter_cells() { [INFO] [stdout] 109 | | if let Some(values) = cell.get_possible_values(&board) { [INFO] [stdout] ... | [INFO] [stdout] 113 | | possible_values [INFO] [stdout] 114 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:116:5 [INFO] [stdout] | [INFO] [stdout] 116 | / pub fn set_value( [INFO] [stdout] 117 | | &mut self, [INFO] [stdout] 118 | | value: u8, [INFO] [stdout] 119 | | cell: CellLoc, [INFO] [stdout] ... | [INFO] [stdout] 195 | | }) [INFO] [stdout] 196 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:198:5 [INFO] [stdout] | [INFO] [stdout] 198 | / pub fn reset_candidates( [INFO] [stdout] 199 | | &mut self, [INFO] [stdout] 200 | | cell: &CellLoc, [INFO] [stdout] 201 | | options: BTreeSet, [INFO] [stdout] ... | [INFO] [stdout] 207 | | self.possible_values.insert(*cell, options) [INFO] [stdout] 208 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:210:5 [INFO] [stdout] | [INFO] [stdout] 210 | / fn add_candidate(&mut self, value: &u8, cell: &CellLoc) { [INFO] [stdout] 211 | | for block in &cell.get_blocks_() { [INFO] [stdout] 212 | | self.candidate_cells [INFO] [stdout] 213 | | .entry(block.with_value(*value)) [INFO] [stdout] ... | [INFO] [stdout] 216 | | } [INFO] [stdout] 217 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | / pub fn remove_candidate(&mut self, value: &u8, cell: &CellLoc) { [INFO] [stdout] 220 | | // first remove the value as an option for that cell [INFO] [stdout] 221 | | if let Some(options) = self.possible_values.get_mut(cell) { [INFO] [stdout] 222 | | if options.remove(value) { [INFO] [stdout] ... | [INFO] [stdout] 231 | | } [INFO] [stdout] 232 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:234:5 [INFO] [stdout] | [INFO] [stdout] 234 | / pub fn undo(&mut self, undo: UndoSetValue) { [INFO] [stdout] 235 | | if let Some(options) = undo.options.1 { [INFO] [stdout] 236 | | let cell = undo.options.0; [INFO] [stdout] 237 | | self.possible_values.insert(cell, options); [INFO] [stdout] ... | [INFO] [stdout] 249 | | } [INFO] [stdout] 250 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:252:5 [INFO] [stdout] | [INFO] [stdout] 252 | / pub fn iter_candidates(&self) -> impl Iterator { [INFO] [stdout] 253 | | self.candidate_cells [INFO] [stdout] 254 | | .iter() [INFO] [stdout] 255 | | .map(|((block, value), cells)| Candidates { [INFO] [stdout] ... | [INFO] [stdout] 259 | | }) [INFO] [stdout] 260 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | / pub fn possible_values(&self) -> &IndexedMap> { [INFO] [stdout] 263 | | &self.possible_values [INFO] [stdout] 264 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/generator.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / //! Provides a function and a utility struct to help you generate new puzzles. [INFO] [stdout] 2 | | //! The [`generate`] function takes the base size of the board (see [`Board::new`] for [INFO] [stdout] 3 | | //! an explanation of base size) and returns a unique, minimal puzzle together with [INFO] [stdout] 4 | | //! the solution for that puzzle. [INFO] [stdout] ... | [INFO] [stdout] 13 | | //! [`board`]: struct.GenSudoku.html#method.board [INFO] [stdout] 14 | | //! [`solution`]: struct.GenSudoku.html#method.solution [INFO] [stdout] | |_______________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/generator.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | / /// This structure represents a generated board and its solution [INFO] [stdout] 22 | | /// [INFO] [stdout] 23 | | /// This struct can only be created by calling the [`generate`] function, which will create [INFO] [stdout] 24 | | /// a random board with a unique solution. [INFO] [stdout] 25 | | /// [INFO] [stdout] 26 | | /// [`generate`]: ../fn.generate.html [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/generator.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | board: Board, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/generator.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | solution: Board, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/generator.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | guesses: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/generator.rs:155:1 [INFO] [stdout] | [INFO] [stdout] 155 | / fn remove_false_guesses(board: Board) -> Board { [INFO] [stdout] 156 | | let mut cur_board = board.clone(); [INFO] [stdout] 157 | | [INFO] [stdout] 158 | | for cell in board.iter_cells().filter(|cell| board.get(&cell).is_some()) { [INFO] [stdout] ... | [INFO] [stdout] 178 | | cur_board [INFO] [stdout] 179 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/generator.rs:107:1 [INFO] [stdout] | [INFO] [stdout] 107 | / impl GenSudoku { [INFO] [stdout] 108 | | /// Returns the minimal board generated [INFO] [stdout] 109 | | /// [INFO] [stdout] 110 | | /// ``` [INFO] [stdout] ... | [INFO] [stdout] 152 | | } [INFO] [stdout] 153 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / #[derive(Debug, Clone, PartialEq)] [INFO] [stdout] 2 | | pub struct IndexedMap { [INFO] [stdout] 3 | | size: usize, [INFO] [stdout] 4 | | values: Vec, [INFO] [stdout] ... | [INFO] [stdout] 270 | | } [INFO] [stdout] 271 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / pub struct IndexedMap { [INFO] [stdout] 3 | | size: usize, [INFO] [stdout] 4 | | values: Vec, [INFO] [stdout] 5 | | keys: Vec>, [INFO] [stdout] 6 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | size: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | values: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | keys: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:33:1 [INFO] [stdout] | [INFO] [stdout] 33 | / pub struct IterSome<'a, T> { [INFO] [stdout] 34 | | values: &'a Vec>, [INFO] [stdout] 35 | | idx: usize, [INFO] [stdout] 36 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | values: &'a Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | idx: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | / pub struct Iter<'a, K, V> { [INFO] [stdout] 54 | | idx: usize, [INFO] [stdout] 55 | | keys: &'a Vec>, [INFO] [stdout] 56 | | values: &'a Vec, [INFO] [stdout] 57 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | idx: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | keys: &'a Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | values: &'a Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | / pub struct Entry<'a, K, V> { [INFO] [stdout] 88 | | key: K, [INFO] [stdout] 89 | | key_ref: &'a mut Option, [INFO] [stdout] 90 | | value: &'a mut V, [INFO] [stdout] 91 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | key: K, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | key_ref: &'a mut Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | value: &'a mut V, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | / pub trait Indexed { [INFO] [stdout] 19 | | fn idx(&self) -> usize; [INFO] [stdout] 20 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | fn idx(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / pub trait Map { [INFO] [stdout] 23 | | fn insert(&mut self, key: K, value: V) -> Option; [INFO] [stdout] 24 | | fn remove(&mut self, key: &K) -> Option; [INFO] [stdout] 25 | | fn is_empty(&self) -> bool; [INFO] [stdout] ... | [INFO] [stdout] 30 | | fn iter(&self) -> Iter; [INFO] [stdout] 31 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | fn insert(&mut self, key: K, value: V) -> Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | fn remove(&mut self, key: &K) -> Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | fn is_empty(&self) -> bool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | fn keys(&self) -> IterSome; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | fn get(&self, key: &K) -> Option<&V>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | fn get_mut(&mut self, key: &K) -> Option<&mut V>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | fn entry(&mut self, key: K) -> Entry; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | fn iter(&self) -> Iter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / impl IndexedMap { [INFO] [stdout] 9 | | pub fn new(size: usize) -> Self { [INFO] [stdout] 10 | | IndexedMap { [INFO] [stdout] 11 | | size, [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] 16 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / pub fn new(size: usize) -> Self { [INFO] [stdout] 10 | | IndexedMap { [INFO] [stdout] 11 | | size, [INFO] [stdout] 12 | | values: vec![V::default(); size], [INFO] [stdout] 13 | | keys: vec![None; size], [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:93:1 [INFO] [stdout] | [INFO] [stdout] 93 | / impl<'a, K: Clone, V> Entry<'a, K, V> { [INFO] [stdout] 94 | | pub fn or_default(&mut self) -> &mut V { [INFO] [stdout] 95 | | if self.key_ref.is_none() { [INFO] [stdout] 96 | | *self.key_ref = Some(self.key.clone()); [INFO] [stdout] ... | [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | / pub fn or_default(&mut self) -> &mut V { [INFO] [stdout] 95 | | if self.key_ref.is_none() { [INFO] [stdout] 96 | | *self.key_ref = Some(self.key.clone()); [INFO] [stdout] 97 | | } [INFO] [stdout] 98 | | [INFO] [stdout] 99 | | self.value [INFO] [stdout] 100 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / impl MoveLog { [INFO] [stdout] 65 | | fn get_cell(&self) -> CellLoc { [INFO] [stdout] 66 | | match self { [INFO] [stdout] 67 | | Self::SetValue { cell, .. } => *cell, [INFO] [stdout] ... | [INFO] [stdout] 81 | | } [INFO] [stdout] 82 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | / fn get_cell(&self) -> CellLoc { [INFO] [stdout] 66 | | match self { [INFO] [stdout] 67 | | Self::SetValue { cell, .. } => *cell, [INFO] [stdout] 68 | | } [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | / fn get_value(&self) -> u8 { [INFO] [stdout] 72 | | match self { [INFO] [stdout] 73 | | Self::SetValue { value, .. } => *value, [INFO] [stdout] 74 | | } [INFO] [stdout] 75 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | / fn get_strategy(&self) -> Option { [INFO] [stdout] 78 | | match self { [INFO] [stdout] 79 | | Self::SetValue { strategy, .. } => Some(*strategy), [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:161:1 [INFO] [stdout] | [INFO] [stdout] 161 | / impl SudokuSolver { [INFO] [stdout] 162 | | fn new(board: &Board) -> Self { [INFO] [stdout] 163 | | let candidate_cache = CandidateCache::from_board(&board); [INFO] [stdout] 164 | | [INFO] [stdout] ... | [INFO] [stdout] 388 | | } [INFO] [stdout] 389 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | / fn new(board: &Board) -> Self { [INFO] [stdout] 163 | | let candidate_cache = CandidateCache::from_board(&board); [INFO] [stdout] 164 | | [INFO] [stdout] 165 | | let solver = SudokuSolver { [INFO] [stdout] ... | [INFO] [stdout] 172 | | solver [INFO] [stdout] 173 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:175:5 [INFO] [stdout] | [INFO] [stdout] 175 | / fn new_random(board: &Board) -> Self { [INFO] [stdout] 176 | | let mut solver = Self::new(board); [INFO] [stdout] 177 | | solver.random = true; [INFO] [stdout] 178 | | solver [INFO] [stdout] 179 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | / fn solve(&mut self) -> Result<(), UnsolvableError> { [INFO] [stdout] 182 | | if self [INFO] [stdout] 183 | | .candidate_cache [INFO] [stdout] 184 | | .possible_values() [INFO] [stdout] ... | [INFO] [stdout] 194 | | Ok(()) [INFO] [stdout] 195 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | / fn naked_singles(&self) -> BTreeSet<(CellLoc, u8)> { [INFO] [stdout] 198 | | self.candidate_cache [INFO] [stdout] 199 | | .possible_values() [INFO] [stdout] 200 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 205 | | .collect() [INFO] [stdout] 206 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | / fn hidden_singles(&self) -> BTreeSet<(CellLoc, u8)> { [INFO] [stdout] 209 | | self.candidate_cache [INFO] [stdout] 210 | | .iter_candidates() [INFO] [stdout] 211 | | .filter_map(|candidate| { [INFO] [stdout] ... | [INFO] [stdout] 218 | | .collect() [INFO] [stdout] 219 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:221:5 [INFO] [stdout] | [INFO] [stdout] 221 | / fn guess(&self) -> (CellLoc, u8) { [INFO] [stdout] 222 | | let rng = if self.random { [INFO] [stdout] 223 | | Some(rand::thread_rng()) [INFO] [stdout] 224 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 240 | | .expect("If the table is full then the method should have finished") [INFO] [stdout] 241 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | / fn solve_iteration(&mut self) -> Result<(), UnsolvableError> { [INFO] [stdout] 263 | | let naked_singles = self.naked_singles(); [INFO] [stdout] 264 | | [INFO] [stdout] 265 | | if !naked_singles.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 299 | | } [INFO] [stdout] 300 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:302:5 [INFO] [stdout] | [INFO] [stdout] 302 | / fn register_move( [INFO] [stdout] 303 | | &mut self, [INFO] [stdout] 304 | | strategy: Strategy, [INFO] [stdout] 305 | | cell: &CellLoc, [INFO] [stdout] ... | [INFO] [stdout] 322 | | Ok(log) [INFO] [stdout] 323 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:325:5 [INFO] [stdout] | [INFO] [stdout] 325 | / fn undo_move(&mut self, mov: MoveLog) { [INFO] [stdout] 326 | | match mov { [INFO] [stdout] 327 | | MoveLog::SetValue { [INFO] [stdout] 328 | | cell, [INFO] [stdout] ... | [INFO] [stdout] 335 | | } [INFO] [stdout] 336 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:338:5 [INFO] [stdout] | [INFO] [stdout] 338 | / fn backtrack(&mut self) -> Result { [INFO] [stdout] 339 | | while let Some(mov) = self.move_log.pop() { [INFO] [stdout] 340 | | let cell = mov.get_cell(); [INFO] [stdout] 341 | | let value = mov.get_value(); [INFO] [stdout] ... | [INFO] [stdout] 387 | | return Err(UnsolvableError); [INFO] [stdout] 388 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | / impl Indexed for CellLoc { [INFO] [stdout] 33 | | fn idx(&self) -> usize { [INFO] [stdout] 34 | | self.get_index() [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / fn idx(&self) -> usize { [INFO] [stdout] 34 | | self.get_index() [INFO] [stdout] 35 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:103:1 [INFO] [stdout] | [INFO] [stdout] 103 | / impl Map for IndexedMap { [INFO] [stdout] 104 | | fn insert(&mut self, key: K, value: V) -> Option { [INFO] [stdout] 105 | | let idx = key.idx(); [INFO] [stdout] 106 | | if idx >= self.size { [INFO] [stdout] ... | [INFO] [stdout] 179 | | } [INFO] [stdout] 180 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | / fn insert(&mut self, key: K, value: V) -> Option { [INFO] [stdout] 105 | | let idx = key.idx(); [INFO] [stdout] 106 | | if idx >= self.size { [INFO] [stdout] 107 | | panic!("Index out of bounds, index value for key is bigger than the map capacity."); [INFO] [stdout] ... | [INFO] [stdout] 119 | | } [INFO] [stdout] 120 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:122:5 [INFO] [stdout] | [INFO] [stdout] 122 | / fn remove(&mut self, key: &K) -> Option { [INFO] [stdout] 123 | | let idx = key.idx(); [INFO] [stdout] 124 | | if idx >= self.size { [INFO] [stdout] 125 | | panic!("Index out of bounds, index value for key is bigger than the map capacity."); [INFO] [stdout] ... | [INFO] [stdout] 133 | | None [INFO] [stdout] 134 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 136 | / fn is_empty(&self) -> bool { [INFO] [stdout] 137 | | self.keys.iter().all(|key| key.is_none()) [INFO] [stdout] 138 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 140 | / fn keys(&self) -> IterSome { [INFO] [stdout] 141 | | IterSome { [INFO] [stdout] 142 | | values: &self.keys, [INFO] [stdout] 143 | | idx: 0, [INFO] [stdout] 144 | | } [INFO] [stdout] 145 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | / fn get(&self, key: &K) -> Option<&V> { [INFO] [stdout] 148 | | if let Some(Some(_)) = self.keys.get(key.idx()) { [INFO] [stdout] 149 | | return Some(&self.values[key.idx()]); [INFO] [stdout] 150 | | } [INFO] [stdout] 151 | | None [INFO] [stdout] 152 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 154 | / fn get_mut(&mut self, key: &K) -> Option<&mut V> { [INFO] [stdout] 155 | | if let Some(Some(_)) = self.keys.get(key.idx()) { [INFO] [stdout] 156 | | return Some(&mut self.values[key.idx()]); [INFO] [stdout] 157 | | } [INFO] [stdout] 158 | | None [INFO] [stdout] 159 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | / fn entry(&mut self, key: K) -> Entry { [INFO] [stdout] 162 | | let idx = key.idx(); [INFO] [stdout] 163 | | if idx >= self.size { [INFO] [stdout] 164 | | panic!("Index out of bounds, index value for key is bigger than the map capacity."); [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/solver/indexed_map.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 173 | / fn iter(&self) -> Iter { [INFO] [stdout] 174 | | Iter { [INFO] [stdout] 175 | | idx: 0, [INFO] [stdout] 176 | | keys: &self.keys, [INFO] [stdout] 177 | | values: &self.values, [INFO] [stdout] 178 | | } [INFO] [stdout] 179 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | / impl<'a, T> Iterator for IterSome<'a, T> { [INFO] [stdout] 39 | | type Item = &'a T; [INFO] [stdout] 40 | | fn next(&mut self) -> Option { [INFO] [stdout] 41 | | while self.idx < self.values.len() { [INFO] [stdout] ... | [INFO] [stdout] 50 | | } [INFO] [stdout] 51 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | type Item = &'a T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / fn next(&mut self) -> Option { [INFO] [stdout] 41 | | while self.idx < self.values.len() { [INFO] [stdout] 42 | | let idx = self.idx; [INFO] [stdout] 43 | | self.idx += 1; [INFO] [stdout] ... | [INFO] [stdout] 49 | | None [INFO] [stdout] 50 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | / impl<'a, K, V> Iterator for Iter<'a, K, V> { [INFO] [stdout] 60 | | type Item = (&'a K, &'a V); [INFO] [stdout] 61 | | fn next(&mut self) -> Option { [INFO] [stdout] 62 | | while self.idx < self.keys.len() { [INFO] [stdout] ... | [INFO] [stdout] 84 | | } [INFO] [stdout] 85 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | type Item = (&'a K, &'a V); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / fn next(&mut self) -> Option { [INFO] [stdout] 62 | | while self.idx < self.keys.len() { [INFO] [stdout] 63 | | let idx = self.idx; [INFO] [stdout] 64 | | self.idx += 1; [INFO] [stdout] ... | [INFO] [stdout] 72 | | None [INFO] [stdout] 73 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / fn size_hint(&self) -> (usize, Option) { [INFO] [stdout] 76 | | let size = self.keys.len(); [INFO] [stdout] 77 | | (size, Some(size)) [INFO] [stdout] 78 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/indexed_map.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | / fn nth(&mut self, n: usize) -> Option { [INFO] [stdout] 81 | | self.idx += n; [INFO] [stdout] 82 | | [INFO] [stdout] 83 | | self.next() [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:509:1 [INFO] [stdout] | [INFO] [stdout] 509 | / impl PartialEq for Board { [INFO] [stdout] 510 | | fn eq(&self, other: &Self) -> bool { [INFO] [stdout] 511 | | if self.base_size != other.base_size { [INFO] [stdout] 512 | | return false; [INFO] [stdout] ... | [INFO] [stdout] 522 | | } [INFO] [stdout] 523 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:510:5 [INFO] [stdout] | [INFO] [stdout] 510 | / fn eq(&self, other: &Self) -> bool { [INFO] [stdout] 511 | | if self.base_size != other.base_size { [INFO] [stdout] 512 | | return false; [INFO] [stdout] 513 | | } [INFO] [stdout] ... | [INFO] [stdout] 521 | | true [INFO] [stdout] 522 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | / impl fmt::Debug for CellLoc { [INFO] [stdout] 78 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 79 | | write!(f, "[{}, {}]", self.line(), self.col()) [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 79 | | write!(f, "[{}, {}]", self.line(), self.col()) [INFO] [stdout] 80 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | / impl fmt::Display for CellLoc { [INFO] [stdout] 72 | | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] 73 | | write!(f, "({}, {})", self.line(), self.col()) [INFO] [stdout] 74 | | } [INFO] [stdout] 75 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | / fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] 73 | | write!(f, "({}, {})", self.line(), self.col()) [INFO] [stdout] 74 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:525:1 [INFO] [stdout] | [INFO] [stdout] 525 | / impl fmt::Display for Board { [INFO] [stdout] 526 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 527 | | for l in 0..self.base_size.pow(2) { [INFO] [stdout] 528 | | for c in 0..self.base_size.pow(2) { [INFO] [stdout] ... | [INFO] [stdout] 538 | | } [INFO] [stdout] 539 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:526:5 [INFO] [stdout] | [INFO] [stdout] 526 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 527 | | for l in 0..self.base_size.pow(2) { [INFO] [stdout] 528 | | for c in 0..self.base_size.pow(2) { [INFO] [stdout] 529 | | if let Some(value) = self.cells[l * self.base_size.pow(2) + c] { [INFO] [stdout] ... | [INFO] [stdout] 537 | | Ok(()) [INFO] [stdout] 538 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:549:1 [INFO] [stdout] | [INFO] [stdout] 549 | / impl fmt::Display for MalformedBoardError { [INFO] [stdout] 550 | | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] 551 | | write!(f, "This board is not correctly formed") [INFO] [stdout] 552 | | } [INFO] [stdout] 553 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:550:5 [INFO] [stdout] | [INFO] [stdout] 550 | / fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] 551 | | write!(f, "This board is not correctly formed") [INFO] [stdout] 552 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | / impl fmt::Display for NoCadidatesLeftError { [INFO] [stdout] 42 | | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] 43 | | write!(f, "No candidates left for this cell {}", self.0) [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver/candidate_cache.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | / fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] 43 | | write!(f, "No candidates left for this cell {}", self.0) [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:88:1 [INFO] [stdout] | [INFO] [stdout] 88 | / impl fmt::Display for UnsolvableError { [INFO] [stdout] 89 | | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] 90 | | write!(f, "The board has no solution") [INFO] [stdout] 91 | | } [INFO] [stdout] 92 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | / fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] 90 | | write!(f, "The board has no solution") [INFO] [stdout] 91 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:563:1 [INFO] [stdout] | [INFO] [stdout] 563 | / impl FromStr for Board { [INFO] [stdout] 564 | | type Err = MalformedBoardError; [INFO] [stdout] 565 | | [INFO] [stdout] 566 | | /// Parses a board from a string. A board will be parsed from a string with each digit [INFO] [stdout] ... | [INFO] [stdout] 623 | | } [INFO] [stdout] 624 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:564:5 [INFO] [stdout] | [INFO] [stdout] 564 | type Err = MalformedBoardError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:556:1 [INFO] [stdout] | [INFO] [stdout] 556 | / impl error::Error for MalformedBoardError { [INFO] [stdout] 557 | | fn source(&self) -> Option<&(dyn error::Error + 'static)> { [INFO] [stdout] 558 | | // Generic error, underlying cause isn't tracked. [INFO] [stdout] 559 | | None [INFO] [stdout] 560 | | } [INFO] [stdout] 561 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/board.rs:557:5 [INFO] [stdout] | [INFO] [stdout] 557 | / fn source(&self) -> Option<&(dyn error::Error + 'static)> { [INFO] [stdout] 558 | | // Generic error, underlying cause isn't tracked. [INFO] [stdout] 559 | | None [INFO] [stdout] 560 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:95:1 [INFO] [stdout] | [INFO] [stdout] 95 | / impl error::Error for UnsolvableError { [INFO] [stdout] 96 | | fn source(&self) -> Option<&(dyn error::Error + 'static)> { [INFO] [stdout] 97 | | // Generic error, underlying cause isn't tracked. [INFO] [stdout] 98 | | None [INFO] [stdout] 99 | | } [INFO] [stdout] 100 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/solver.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | / fn source(&self) -> Option<&(dyn error::Error + 'static)> { [INFO] [stdout] 97 | | // Generic error, underlying cause isn't tracked. [INFO] [stdout] 98 | | None [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 156 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 14.33s [INFO] running `Command { std: "docker" "inspect" "93ee26db319df0405c7e7b53fcae3adef2ddfc0fb57fdd6c3b1e085f83b324be", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "93ee26db319df0405c7e7b53fcae3adef2ddfc0fb57fdd6c3b1e085f83b324be", kill_on_drop: false }` [INFO] [stdout] 93ee26db319df0405c7e7b53fcae3adef2ddfc0fb57fdd6c3b1e085f83b324be