[INFO] cloning repository https://github.com/Saeris/rust-potrace [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Saeris/rust-potrace" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSaeris%2Frust-potrace", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSaeris%2Frust-potrace'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7d93d0db47e0b5fa3bf4e250d5dec3d48ac79a54 [INFO] checking Saeris/rust-potrace against try#f47dd4da3ae8c32c9e65d307bfe640b143e674df for pr-77526 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSaeris%2Frust-potrace" "/workspace/builds/worker-1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Saeris/rust-potrace on toolchain f47dd4da3ae8c32c9e65d307bfe640b143e674df [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Saeris/rust-potrace [INFO] finished tweaking git repo https://github.com/Saeris/rust-potrace [INFO] tweaked toml for git repo https://github.com/Saeris/rust-potrace written to /workspace/builds/worker-1/source/Cargo.toml [INFO] crate git repo https://github.com/Saeris/rust-potrace already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cargo-husky v1.5.0 [INFO] [stderr] Downloaded cached v0.19.0 [INFO] [stderr] Downloaded cached_proc_macro v0.4.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a430b33130b93f7f0566108edb9aaabf143c144d2c4ace95b9b6cce92dad14cd [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" "a430b33130b93f7f0566108edb9aaabf143c144d2c4ace95b9b6cce92dad14cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a430b33130b93f7f0566108edb9aaabf143c144d2c4ace95b9b6cce92dad14cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a430b33130b93f7f0566108edb9aaabf143c144d2c4ace95b9b6cce92dad14cd", kill_on_drop: false }` [INFO] [stdout] a430b33130b93f7f0566108edb9aaabf143c144d2c4ace95b9b6cce92dad14cd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] bc48819bcbbdccb1c6dec59d9ea5aca622e033ae25c6f352498d087a6ab54e37 [INFO] running `Command { std: "docker" "start" "-a" "bc48819bcbbdccb1c6dec59d9ea5aca622e033ae25c6f352498d087a6ab54e37", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.41 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.68 [INFO] [stderr] Compiling rayon-core v1.8.1 [INFO] [stderr] Compiling strsim v0.9.3 [INFO] [stderr] Checking adler32 v1.2.0 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling bumpalo v3.4.0 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling crc32fast v1.2.0 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking lzw v0.10.0 [INFO] [stderr] Compiling event-listener v2.4.0 [INFO] [stderr] Checking color_quant v1.0.1 [INFO] [stderr] Compiling wasm-bindgen v0.2.68 [INFO] [stderr] Checking bytemuck v1.4.1 [INFO] [stderr] Checking scoped_threadpool v0.1.9 [INFO] [stderr] Compiling cargo-husky v1.5.0 [INFO] [stderr] Checking regex-syntax v0.6.18 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling num-bigint v0.3.0 [INFO] [stderr] Compiling num-rational v0.3.0 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Compiling rayon v1.4.0 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Checking miniz_oxide v0.3.7 [INFO] [stderr] Compiling async-mutex v1.3.0 [INFO] [stderr] Checking gif v0.10.3 [INFO] [stderr] Checking crossbeam-utils v0.7.2 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking aho-corasick v0.7.13 [INFO] [stderr] Checking crossbeam-epoch v0.8.2 [INFO] [stderr] Checking crossbeam-channel v0.4.4 [INFO] [stderr] Checking deflate v0.8.6 [INFO] [stderr] Checking tiff v0.5.0 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Checking png v0.16.7 [INFO] [stderr] Checking num-complex v0.3.0 [INFO] [stderr] Checking regex v1.3.9 [INFO] [stderr] Checking num v0.3.0 [INFO] [stderr] Checking jpeg-decoder v0.1.20 [INFO] [stderr] Checking image v0.23.9 [INFO] [stderr] Compiling darling_core v0.10.2 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.68 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.68 [INFO] [stderr] Compiling darling_macro v0.10.2 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.68 [INFO] [stderr] Compiling darling v0.10.2 [INFO] [stderr] Compiling cached_proc_macro v0.4.0 [INFO] [stderr] Checking cached v0.19.0 [INFO] [stderr] Checking rust-potrace v0.0.0 (/opt/rustwide/workdir) [INFO] [stdout] error: cannot use a comma after the base struct [INFO] [stdout] --> src/posterizer.rs:176:48 [INFO] [stdout] | [INFO] [stdout] 176 | potrace.setParameters(PotraceOptions { ..Default::default(), blackOnWhite }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^- help: remove this comma [INFO] [stdout] | [INFO] [stdout] = note: the base struct must always be the last field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found `1` [INFO] [stdout] --> src/posterizer.rs:243:82 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | -------------------- ^ expected identifier [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: comparison operators cannot be chained [INFO] [stdout] --> src/posterizer.rs:243:52 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^ ^^ [INFO] [stdout] | [INFO] [stdout] help: parenthesize the comparison [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if (a < b) == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: missing condition for `if` expression [INFO] [stdout] --> src/posterizer.rs:243:49 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^ expected if condition here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot use a comma after the base struct [INFO] [stdout] --> src/posterizer.rs:176:48 [INFO] [stdout] | [INFO] [stdout] 176 | potrace.setParameters(PotraceOptions { ..Default::default(), blackOnWhite }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^- help: remove this comma [INFO] [stdout] | [INFO] [stdout] = note: the base struct must always be the last field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found `1` [INFO] [stdout] --> src/posterizer.rs:243:82 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | -------------------- ^ expected identifier [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: comparison operators cannot be chained [INFO] [stdout] --> src/posterizer.rs:243:52 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^ ^^ [INFO] [stdout] | [INFO] [stdout] help: parenthesize the comparison [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if (a < b) == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: missing condition for `if` expression [INFO] [stdout] --> src/posterizer.rs:243:49 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^ expected if condition here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `null` in this scope [INFO] [stdout] --> src/posterizer.rs:123:36 [INFO] [stdout] | [INFO] [stdout] 123 | self.calculatedThreshold = null [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 | use std::ptr::null; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `null` in this scope [INFO] [stdout] --> src/posterizer.rs:129:36 [INFO] [stdout] | [INFO] [stdout] 129 | self.calculatedThreshold = null; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 | use std::ptr::null; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `boolean` in this scope [INFO] [stdout] --> src/posterizer.rs:167:41 [INFO] [stdout] | [INFO] [stdout] 167 | fn pathTags(&mut self, noFillColor: boolean) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `parseFloat` in this scope [INFO] [stdout] --> src/posterizer.rs:197:39 [INFO] [stdout] | [INFO] [stdout] 197 | calculatedOpacity = clamp(parseFloat(calculatedOpacity.toFixed(3)), 0, 1); [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Array` in this scope [INFO] [stdout] --> src/posterizer.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | if !Array.isArray(steps) { [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Math` in this scope [INFO] [stdout] --> src/posterizer.rs:297:33 [INFO] [stdout] | [INFO] [stdout] 297 | let mut threshold = Math.min(colorsToThreshold, (i + 1) * stepSize); [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `null` in this scope [INFO] [stdout] --> src/posterizer.rs:123:36 [INFO] [stdout] | [INFO] [stdout] 123 | self.calculatedThreshold = null [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 | use std::ptr::null; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `null` in this scope [INFO] [stdout] --> src/posterizer.rs:129:36 [INFO] [stdout] | [INFO] [stdout] 129 | self.calculatedThreshold = null; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 | use std::ptr::null; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `boolean` in this scope [INFO] [stdout] --> src/posterizer.rs:167:41 [INFO] [stdout] | [INFO] [stdout] 167 | fn pathTags(&mut self, noFillColor: boolean) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `parseFloat` in this scope [INFO] [stdout] --> src/posterizer.rs:197:39 [INFO] [stdout] | [INFO] [stdout] 197 | calculatedOpacity = clamp(parseFloat(calculatedOpacity.toFixed(3)), 0, 1); [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Array` in this scope [INFO] [stdout] --> src/posterizer.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | if !Array.isArray(steps) { [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `isNaN` in this scope [INFO] [stdout] --> src/posterizer.rs:351:36 [INFO] [stdout] | [INFO] [stdout] 351 | colorIntensity: if isNaN(color) { 0 } else { (if blackOnWhite { 255 - color } else { color }) / 255 } [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Array` in this scope [INFO] [stdout] --> src/posterizer.rs:423:12 [INFO] [stdout] | [INFO] [stdout] 423 | if Array.isArray(steps) && count { [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Math` in this scope [INFO] [stdout] --> src/posterizer.rs:440:13 [INFO] [stdout] | [INFO] [stdout] 440 | Math.min(colorsCount, Math.max(2, steps)) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Math` in this scope [INFO] [stdout] --> src/posterizer.rs:440:35 [INFO] [stdout] | [INFO] [stdout] 440 | Math.min(colorsCount, Math.max(2, steps)) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Math` in this scope [INFO] [stdout] --> src/posterizer.rs:297:33 [INFO] [stdout] | [INFO] [stdout] 297 | let mut threshold = Math.min(colorsToThreshold, (i + 1) * stepSize); [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `isNaN` in this scope [INFO] [stdout] --> src/posterizer.rs:351:36 [INFO] [stdout] | [INFO] [stdout] 351 | colorIntensity: if isNaN(color) { 0 } else { (if blackOnWhite { 255 - color } else { color }) / 255 } [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Array` in this scope [INFO] [stdout] --> src/posterizer.rs:423:12 [INFO] [stdout] | [INFO] [stdout] 423 | if Array.isArray(steps) && count { [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Math` in this scope [INFO] [stdout] --> src/posterizer.rs:440:13 [INFO] [stdout] | [INFO] [stdout] 440 | Math.min(colorsCount, Math.max(2, steps)) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Math` in this scope [INFO] [stdout] --> src/posterizer.rs:440:35 [INFO] [stdout] | [INFO] [stdout] 440 | Math.min(colorsCount, Math.max(2, steps)) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `min` [INFO] [stdout] --> src/posterizer.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cmp::{max, min}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around block return value [INFO] [stdout] --> src/posterizer.rs:243:91 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^^^^^^ help: remove these braces [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `min` [INFO] [stdout] --> src/posterizer.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cmp::{max, min}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/potrace.rs:234:15 [INFO] [stdout] | [INFO] [stdout] 234 | while (currentPoint = blackMap.find_next(currentPoint)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around block return value [INFO] [stdout] --> src/posterizer.rs:243:91 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^^^^^^ help: remove these braces [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/potrace.rs:234:15 [INFO] [stdout] | [INFO] [stdout] 234 | while (currentPoint = blackMap.find_next(currentPoint)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:28:30 [INFO] [stdout] | [INFO] [stdout] 28 | fillStrategy: Option>, // typeof FILL_DOMINANT | string [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 25 | pub struct PosterizerOptions<'a> { [INFO] [stdout] 26 | potrace: Option>, [INFO] [stdout] 27 | steps: Option>>, // typeof STEPS_AUTO | number | number[] [INFO] [stdout] 28 | fillStrategy: Option>, // typeof FILL_DOMINANT | string [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:29:24 [INFO] [stdout] | [INFO] [stdout] 29 | rangeDistribution: &str, // typeof RANGES_AUTO | string [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 25 | pub struct PosterizerOptions<'a> { [INFO] [stdout] 26 | potrace: Option>, [INFO] [stdout] 27 | steps: Option>>, // typeof STEPS_AUTO | number | number[] [INFO] [stdout] 28 | fillStrategy: Option>, // typeof FILL_DOMINANT | string [INFO] [stdout] 29 | rangeDistribution: &'a str, // typeof RANGES_AUTO | string [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | background: &str, [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Posterizer<'a> { [INFO] [stdout] 53 | potrace: Potrace, [INFO] [stdout] 54 | calculatedThreshold: Option>, [INFO] [stdout] 55 | threshold: Option>, [INFO] [stdout] 56 | blackOnWhite: bool, [INFO] [stdout] 57 | background: &'a str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:59:30 [INFO] [stdout] | [INFO] [stdout] 59 | fillStrategy: Option>, [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Posterizer<'a> { [INFO] [stdout] 53 | potrace: Potrace, [INFO] [stdout] 54 | calculatedThreshold: Option>, [INFO] [stdout] 55 | threshold: Option>, [INFO] [stdout] 56 | blackOnWhite: bool, [INFO] [stdout] 57 | background: &str, [INFO] [stdout] ... [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 60 | rangeDistribution: &str, [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Posterizer<'a> { [INFO] [stdout] 53 | potrace: Potrace, [INFO] [stdout] 54 | calculatedThreshold: Option>, [INFO] [stdout] 55 | threshold: Option>, [INFO] [stdout] 56 | blackOnWhite: bool, [INFO] [stdout] 57 | background: &str, [INFO] [stdout] ... [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:28:30 [INFO] [stdout] | [INFO] [stdout] 28 | fillStrategy: Option>, // typeof FILL_DOMINANT | string [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 25 | pub struct PosterizerOptions<'a> { [INFO] [stdout] 26 | potrace: Option>, [INFO] [stdout] 27 | steps: Option>>, // typeof STEPS_AUTO | number | number[] [INFO] [stdout] 28 | fillStrategy: Option>, // typeof FILL_DOMINANT | string [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:29:24 [INFO] [stdout] | [INFO] [stdout] 29 | rangeDistribution: &str, // typeof RANGES_AUTO | string [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 25 | pub struct PosterizerOptions<'a> { [INFO] [stdout] 26 | potrace: Option>, [INFO] [stdout] 27 | steps: Option>>, // typeof STEPS_AUTO | number | number[] [INFO] [stdout] 28 | fillStrategy: Option>, // typeof FILL_DOMINANT | string [INFO] [stdout] 29 | rangeDistribution: &'a str, // typeof RANGES_AUTO | string [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | background: &str, [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Posterizer<'a> { [INFO] [stdout] 53 | potrace: Potrace, [INFO] [stdout] 54 | calculatedThreshold: Option>, [INFO] [stdout] 55 | threshold: Option>, [INFO] [stdout] 56 | blackOnWhite: bool, [INFO] [stdout] 57 | background: &'a str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:59:30 [INFO] [stdout] | [INFO] [stdout] 59 | fillStrategy: Option>, [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Posterizer<'a> { [INFO] [stdout] 53 | potrace: Potrace, [INFO] [stdout] 54 | calculatedThreshold: Option>, [INFO] [stdout] 55 | threshold: Option>, [INFO] [stdout] 56 | blackOnWhite: bool, [INFO] [stdout] 57 | background: &str, [INFO] [stdout] ... [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/posterizer.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 60 | rangeDistribution: &str, [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Posterizer<'a> { [INFO] [stdout] 53 | potrace: Potrace, [INFO] [stdout] 54 | calculatedThreshold: Option>, [INFO] [stdout] 55 | threshold: Option>, [INFO] [stdout] 56 | blackOnWhite: bool, [INFO] [stdout] 57 | background: &str, [INFO] [stdout] ... [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:35:27 [INFO] [stdout] | [INFO] [stdout] 35 | potrace: Some(PotraceOptions { ..Default::default() }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Box`, found struct `PotraceOptions` [INFO] [stdout] | help: store this in the heap by calling `Box::new`: `Box::new(PotraceOptions { ..Default::default() })` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box` [INFO] [stdout] found struct `PotraceOptions` [INFO] [stdout] = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:35:27 [INFO] [stdout] | [INFO] [stdout] 35 | potrace: Some(PotraceOptions { ..Default::default() }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Box`, found struct `PotraceOptions` [INFO] [stdout] | help: store this in the heap by calling `Box::new`: `Box::new(PotraceOptions { ..Default::default() })` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box` [INFO] [stdout] found struct `PotraceOptions` [INFO] [stdout] = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:36:25 [INFO] [stdout] | [INFO] [stdout] 36 | steps: Some(vec![STEPS_AUTO]), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected struct `Box`, found struct `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:36:25 [INFO] [stdout] | [INFO] [stdout] 36 | steps: Some(vec![STEPS_AUTO]), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected struct `Box`, found struct `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:37:32 [INFO] [stdout] | [INFO] [stdout] 37 | fillStrategy: Some(FILL_DOMINANT), [INFO] [stdout] | ^^^^^^^^^^^^^ expected struct `Box`, found struct `String` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<&str>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:38:32 [INFO] [stdout] | [INFO] [stdout] 38 | rangeDistribution: RANGES_AUTO [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&str`, found struct `String` [INFO] [stdout] | help: consider borrowing here: `&RANGES_AUTO` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/posterizer.rs:66:22 [INFO] [stdout] | [INFO] [stdout] 66 | potrace: Potrace::new(), [INFO] [stdout] | ^^^^^^^^^^^^-- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 1 argument [INFO] [stdout] | [INFO] [stdout] ::: src/potrace.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(options: Option>) -> Potrace { [INFO] [stdout] | ----------------------------------------------------------- defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:37:32 [INFO] [stdout] | [INFO] [stdout] 37 | fillStrategy: Some(FILL_DOMINANT), [INFO] [stdout] | ^^^^^^^^^^^^^ expected struct `Box`, found struct `String` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<&str>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:38:32 [INFO] [stdout] | [INFO] [stdout] 38 | rangeDistribution: RANGES_AUTO [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&str`, found struct `String` [INFO] [stdout] | help: consider borrowing here: `&RANGES_AUTO` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/posterizer.rs:66:22 [INFO] [stdout] | [INFO] [stdout] 66 | potrace: Potrace::new(), [INFO] [stdout] | ^^^^^^^^^^^^-- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 1 argument [INFO] [stdout] | [INFO] [stdout] ::: src/potrace.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(options: Option>) -> Potrace { [INFO] [stdout] | ----------------------------------------------------------- defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | threshold: Some(THRESHOLD_AUTO), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Box`, found `i32` [INFO] [stdout] | help: store this in the heap by calling `Box::new`: `Box::new(THRESHOLD_AUTO)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box` [INFO] [stdout] found type `i32` [INFO] [stdout] = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:70:25 [INFO] [stdout] | [INFO] [stdout] 70 | background: COLOR_TRANSPARENT, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&str`, found struct `String` [INFO] [stdout] | help: consider borrowing here: `&COLOR_TRANSPARENT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | threshold: Some(THRESHOLD_AUTO), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Box`, found `i32` [INFO] [stdout] | help: store this in the heap by calling `Box::new`: `Box::new(THRESHOLD_AUTO)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box` [INFO] [stdout] found type `i32` [INFO] [stdout] = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:70:25 [INFO] [stdout] | [INFO] [stdout] 70 | background: COLOR_TRANSPARENT, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&str`, found struct `String` [INFO] [stdout] | help: consider borrowing here: `&COLOR_TRANSPARENT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:71:25 [INFO] [stdout] | [INFO] [stdout] 71 | steps: Some(vec![STEPS_AUTO]), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected struct `Box`, found struct `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:71:25 [INFO] [stdout] | [INFO] [stdout] 71 | steps: Some(vec![STEPS_AUTO]), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected struct `Box`, found struct `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:72:32 [INFO] [stdout] | [INFO] [stdout] 72 | fillStrategy: Some(FILL_DOMINANT), [INFO] [stdout] | ^^^^^^^^^^^^^ expected struct `Box`, found struct `String` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<&str>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:73:32 [INFO] [stdout] | [INFO] [stdout] 73 | rangeDistribution: RANGES_AUTO [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&str`, found struct `String` [INFO] [stdout] | help: consider borrowing here: `&RANGES_AUTO` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:72:32 [INFO] [stdout] | [INFO] [stdout] 72 | fillStrategy: Some(FILL_DOMINANT), [INFO] [stdout] | ^^^^^^^^^^^^^ expected struct `Box`, found struct `String` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<&str>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:73:32 [INFO] [stdout] | [INFO] [stdout] 73 | rangeDistribution: RANGES_AUTO [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&str`, found struct `String` [INFO] [stdout] | help: consider borrowing here: `&RANGES_AUTO` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:83:51 [INFO] [stdout] | [INFO] [stdout] 83 | Some(potrace) => Potrace::new(potrace), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(potrace)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/posterizer.rs:84:29 [INFO] [stdout] | [INFO] [stdout] 84 | None => Potrace::new() [INFO] [stdout] | ^^^^^^^^^^^^-- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 1 argument [INFO] [stdout] | [INFO] [stdout] ::: src/potrace.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(options: Option>) -> Potrace { [INFO] [stdout] | ----------------------------------------------------------- defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:83:51 [INFO] [stdout] | [INFO] [stdout] 83 | Some(potrace) => Potrace::new(potrace), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(potrace)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/posterizer.rs:84:29 [INFO] [stdout] | [INFO] [stdout] 84 | None => Potrace::new() [INFO] [stdout] | ^^^^^^^^^^^^-- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 1 argument [INFO] [stdout] | [INFO] [stdout] ::: src/potrace.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(options: Option>) -> Potrace { [INFO] [stdout] | ----------------------------------------------------------- defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:87:36 [INFO] [stdout] | [INFO] [stdout] 87 | Some(steps) => steps, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(steps)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:87:36 [INFO] [stdout] | [INFO] [stdout] 87 | Some(steps) => steps, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(steps)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:91:43 [INFO] [stdout] | [INFO] [stdout] 91 | Some(fillStrategy) => fillStrategy, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(fillStrategy)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<&str>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 94 | rangeDistribution: match val.rangeDistribution { [INFO] [stdout] | --------------------- this expression has type `&str` [INFO] [stdout] 95 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ expected `str`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `str` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:96:21 [INFO] [stdout] | [INFO] [stdout] 94 | rangeDistribution: match val.rangeDistribution { [INFO] [stdout] | --------------------- this expression has type `&str` [INFO] [stdout] 95 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] 96 | None => RANGES_AUTO [INFO] [stdout] | ^^^^ expected `str`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `str` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/posterizer.rs:96:29 [INFO] [stdout] | [INFO] [stdout] 94 | rangeDistribution: match val.rangeDistribution { [INFO] [stdout] | ____________________________________- [INFO] [stdout] 95 | | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | | ----------------- this is found to be of type `&'static str` [INFO] [stdout] 96 | | None => RANGES_AUTO [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `&str`, found struct `String` [INFO] [stdout] | | help: consider borrowing here: `&RANGES_AUTO` [INFO] [stdout] 97 | | }, [INFO] [stdout] | |_________________- `match` arms have incompatible types [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time [INFO] [stdout] --> src/posterizer.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 95 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `str` [INFO] [stdout] = note: required by `Some` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:91:43 [INFO] [stdout] | [INFO] [stdout] 91 | Some(fillStrategy) => fillStrategy, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(fillStrategy)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<&str>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 94 | rangeDistribution: match val.rangeDistribution { [INFO] [stdout] | --------------------- this expression has type `&str` [INFO] [stdout] 95 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ expected `str`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `str` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:96:21 [INFO] [stdout] | [INFO] [stdout] 94 | rangeDistribution: match val.rangeDistribution { [INFO] [stdout] | --------------------- this expression has type `&str` [INFO] [stdout] 95 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] 96 | None => RANGES_AUTO [INFO] [stdout] | ^^^^ expected `str`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `str` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/posterizer.rs:96:29 [INFO] [stdout] | [INFO] [stdout] 94 | rangeDistribution: match val.rangeDistribution { [INFO] [stdout] | ____________________________________- [INFO] [stdout] 95 | | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | | ----------------- this is found to be of type `&'static str` [INFO] [stdout] 96 | | None => RANGES_AUTO [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `&str`, found struct `String` [INFO] [stdout] | | help: consider borrowing here: `&RANGES_AUTO` [INFO] [stdout] 97 | | }, [INFO] [stdout] | |_________________- `match` arms have incompatible types [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time [INFO] [stdout] --> src/posterizer.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 95 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `str` [INFO] [stdout] = note: required by `Some` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:107:48 [INFO] [stdout] | [INFO] [stdout] 107 | Some(potrace) => Potrace::new(Some(*potrace)), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Box`, found struct `PotraceOptions` [INFO] [stdout] | help: store this in the heap by calling `Box::new`: `Box::new(*potrace)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box` [INFO] [stdout] found struct `PotraceOptions` [INFO] [stdout] = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:107:48 [INFO] [stdout] | [INFO] [stdout] 107 | Some(potrace) => Potrace::new(Some(*potrace)), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Box`, found struct `PotraceOptions` [INFO] [stdout] | help: store this in the heap by calling `Box::new`: `Box::new(*potrace)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box` [INFO] [stdout] found struct `PotraceOptions` [INFO] [stdout] = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:111:28 [INFO] [stdout] | [INFO] [stdout] 111 | Some(steps) => steps, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(steps)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:111:28 [INFO] [stdout] | [INFO] [stdout] 111 | Some(steps) => steps, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(steps)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:115:35 [INFO] [stdout] | [INFO] [stdout] 115 | Some(fillStrategy) => fillStrategy, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(fillStrategy)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<&str>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 118 | self.rangeDistribution = match params.rangeDistribution { [INFO] [stdout] | ------------------------ this expression has type `&str` [INFO] [stdout] 119 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ expected `str`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `str` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 118 | self.rangeDistribution = match params.rangeDistribution { [INFO] [stdout] | ------------------------ this expression has type `&str` [INFO] [stdout] 119 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] 120 | None => self.rangeDistribution [INFO] [stdout] | ^^^^ expected `str`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `str` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:115:35 [INFO] [stdout] | [INFO] [stdout] 115 | Some(fillStrategy) => fillStrategy, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `Box` [INFO] [stdout] | help: try using a variant of the expected enum: `Some(fillStrategy)` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `Box<&str>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 118 | self.rangeDistribution = match params.rangeDistribution { [INFO] [stdout] | ------------------------ this expression has type `&str` [INFO] [stdout] 119 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ expected `str`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `str` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 118 | self.rangeDistribution = match params.rangeDistribution { [INFO] [stdout] | ------------------------ this expression has type `&str` [INFO] [stdout] 119 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] 120 | None => self.rangeDistribution [INFO] [stdout] | ^^^^ expected `str`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `str` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:122:36 [INFO] [stdout] | [INFO] [stdout] 122 | self.potrace.setParameters(params); [INFO] [stdout] | ^^^^^^ expected struct `PotraceOptions`, found struct `PosterizerOptions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time [INFO] [stdout] --> src/posterizer.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `str` [INFO] [stdout] = note: required by `Some` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/posterizer.rs:135:48 [INFO] [stdout] | [INFO] [stdout] 135 | let width = self.potrace.luminanceData.width; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/posterizer.rs:136:49 [INFO] [stdout] | [INFO] [stdout] 136 | let height = self.potrace.luminanceData.height; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/posterizer.rs:143:48 [INFO] [stdout] | [INFO] [stdout] 143 | let width = self.potrace.luminanceData.width; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/posterizer.rs:144:49 [INFO] [stdout] | [INFO] [stdout] 144 | let height = self.potrace.luminanceData.height; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:122:36 [INFO] [stdout] | [INFO] [stdout] 122 | self.potrace.setParameters(params); [INFO] [stdout] | ^^^^^^ expected struct `PotraceOptions`, found struct `PosterizerOptions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time [INFO] [stdout] --> src/posterizer.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | Some(rangeDistribution) => rangeDistribution, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `str` [INFO] [stdout] = note: required by `Some` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/posterizer.rs:135:48 [INFO] [stdout] | [INFO] [stdout] 135 | let width = self.potrace.luminanceData.width; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/posterizer.rs:136:49 [INFO] [stdout] | [INFO] [stdout] 136 | let height = self.potrace.luminanceData.height; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/posterizer.rs:143:48 [INFO] [stdout] | [INFO] [stdout] 143 | let width = self.potrace.luminanceData.width; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/posterizer.rs:144:49 [INFO] [stdout] | [INFO] [stdout] 144 | let height = self.potrace.luminanceData.height; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:159:13 [INFO] [stdout] | [INFO] [stdout] 159 | "" [INFO] [stdout] | ^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `String`, found `&str` [INFO] [stdout] | help: try using a conversion method: `"".to_string()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:172:19 [INFO] [stdout] | [INFO] [stdout] 172 | if ranges.length >= 10 { [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:159:13 [INFO] [stdout] | [INFO] [stdout] 159 | "" [INFO] [stdout] | ^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `String`, found `&str` [INFO] [stdout] | help: try using a conversion method: `"".to_string()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:172:19 [INFO] [stdout] | [INFO] [stdout] 172 | if ranges.length >= 10 { [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:173:22 [INFO] [stdout] | [INFO] [stdout] 173 | ranges = self.addExtraColorStop(ranges) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Vec`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `map` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:180:23 [INFO] [stdout] | [INFO] [stdout] 180 | return ranges.map(|colorStop| { [INFO] [stdout] | ^^^ method not found in `Vec` [INFO] [stdout] | [INFO] [stdout] = note: the method `map` exists but the following trait bounds were not satisfied: [INFO] [stdout] `Vec: Iterator` [INFO] [stdout] which is required by `&mut Vec: Iterator` [INFO] [stdout] `[ColorStop]: Iterator` [INFO] [stdout] which is required by `&mut [ColorStop]: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:173:22 [INFO] [stdout] | [INFO] [stdout] 173 | ranges = self.addExtraColorStop(ranges) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Vec`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `map` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:180:23 [INFO] [stdout] | [INFO] [stdout] 180 | return ranges.map(|colorStop| { [INFO] [stdout] | ^^^ method not found in `Vec` [INFO] [stdout] | [INFO] [stdout] = note: the method `map` exists but the following trait bounds were not satisfied: [INFO] [stdout] `Vec: Iterator` [INFO] [stdout] which is required by `&mut Vec: Iterator` [INFO] [stdout] `[ColorStop]: Iterator` [INFO] [stdout] which is required by `&mut [ColorStop]: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:191:40 [INFO] [stdout] | [INFO] [stdout] 191 | let calculatedOpacity = if !actualPrevLayersOpacity || thisLayerOpacity == 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found integer [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot construct `PotraceOptions` with struct literal syntax due to inaccessible fields [INFO] [stdout] --> src/posterizer.rs:200:35 [INFO] [stdout] | [INFO] [stdout] 200 | potrace.setParameters(PotraceOptions { threshold: colorStop.value }); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getPathTag` found for struct `Potrace` in the current scope [INFO] [stdout] --> src/posterizer.rs:202:52 [INFO] [stdout] | [INFO] [stdout] 202 | let element = if noFillColor { potrace.getPathTag("") } else { potrace.getPathTag() }; [INFO] [stdout] | ^^^^^^^^^^ method not found in `Potrace` [INFO] [stdout] | [INFO] [stdout] ::: src/potrace.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct Potrace { [INFO] [stdout] | ------------------ method `getPathTag` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getPathTag` found for struct `Potrace` in the current scope [INFO] [stdout] --> src/posterizer.rs:202:84 [INFO] [stdout] | [INFO] [stdout] 202 | let element = if noFillColor { potrace.getPathTag("") } else { potrace.getPathTag() }; [INFO] [stdout] | ^^^^^^^^^^ method not found in `Potrace` [INFO] [stdout] | [INFO] [stdout] ::: src/potrace.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct Potrace { [INFO] [stdout] | ------------------ method `getPathTag` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:203:23 [INFO] [stdout] | [INFO] [stdout] 203 | element = set_html_attribute( [INFO] [stdout] | _______________________^ [INFO] [stdout] 204 | | element, [INFO] [stdout] 205 | | "fill-opacity", [INFO] [stdout] 206 | | calculatedOpacity.toFixed(3) [INFO] [stdout] 207 | | ); [INFO] [stdout] | |_____________^ expected `&str`, found struct `String` [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 203 | element = &set_html_attribute( [INFO] [stdout] 204 | element, [INFO] [stdout] 205 | "fill-opacity", [INFO] [stdout] 206 | calculatedOpacity.toFixed(3) [INFO] [stdout] 207 | ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `indexOf` found for reference `&str` in the current scope [INFO] [stdout] --> src/posterizer.rs:209:66 [INFO] [stdout] | [INFO] [stdout] 209 | let canBeIgnored = calculatedOpacity == 0 || element.indexOf("d=\"\"") != -1; [INFO] [stdout] | ^^^^^^^ method not found in `&str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/posterizer.rs:217:26 [INFO] [stdout] | [INFO] [stdout] 217 | let steps = self.paramSteps(); [INFO] [stdout] | ^^^^^^^^^^- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 1 argument [INFO] [stdout] ... [INFO] [stdout] 414 | fn paramSteps(&mut self, stepCount: Option>) -> u8 { [INFO] [stdout] | ------------------------------------------------------------ defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `forEach` found for type `u8` in the current scope [INFO] [stdout] --> src/posterizer.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | steps.forEach(|item| { [INFO] [stdout] | ^^^^^^^ method not found in `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:191:40 [INFO] [stdout] | [INFO] [stdout] 191 | let calculatedOpacity = if !actualPrevLayersOpacity || thisLayerOpacity == 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found integer [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `indexOf` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:234:27 [INFO] [stdout] | [INFO] [stdout] 234 | if colorStops.indexOf(item) == -1 && between(item, 0, 255) { [INFO] [stdout] | ^^^^^^^ method not found in `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot construct `PotraceOptions` with struct literal syntax due to inaccessible fields [INFO] [stdout] --> src/posterizer.rs:200:35 [INFO] [stdout] | [INFO] [stdout] 200 | potrace.setParameters(PotraceOptions { threshold: colorStop.value }); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getPathTag` found for struct `Potrace` in the current scope [INFO] [stdout] --> src/posterizer.rs:202:52 [INFO] [stdout] | [INFO] [stdout] 202 | let element = if noFillColor { potrace.getPathTag("") } else { potrace.getPathTag() }; [INFO] [stdout] | ^^^^^^^^^^ method not found in `Potrace` [INFO] [stdout] | [INFO] [stdout] ::: src/potrace.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct Potrace { [INFO] [stdout] | ------------------ method `getPathTag` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getPathTag` found for struct `Potrace` in the current scope [INFO] [stdout] --> src/posterizer.rs:202:84 [INFO] [stdout] | [INFO] [stdout] 202 | let element = if noFillColor { potrace.getPathTag("") } else { potrace.getPathTag() }; [INFO] [stdout] | ^^^^^^^^^^ method not found in `Potrace` [INFO] [stdout] | [INFO] [stdout] ::: src/potrace.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct Potrace { [INFO] [stdout] | ------------------ method `getPathTag` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:203:23 [INFO] [stdout] | [INFO] [stdout] 203 | element = set_html_attribute( [INFO] [stdout] | _______________________^ [INFO] [stdout] 204 | | element, [INFO] [stdout] 205 | | "fill-opacity", [INFO] [stdout] 206 | | calculatedOpacity.toFixed(3) [INFO] [stdout] 207 | | ); [INFO] [stdout] | |_____________^ expected `&str`, found struct `String` [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 203 | element = &set_html_attribute( [INFO] [stdout] 204 | element, [INFO] [stdout] 205 | "fill-opacity", [INFO] [stdout] 206 | calculatedOpacity.toFixed(3) [INFO] [stdout] 207 | ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `indexOf` found for reference `&str` in the current scope [INFO] [stdout] --> src/posterizer.rs:209:66 [INFO] [stdout] | [INFO] [stdout] 209 | let canBeIgnored = calculatedOpacity == 0 || element.indexOf("d=\"\"") != -1; [INFO] [stdout] | ^^^^^^^ method not found in `&str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/posterizer.rs:217:26 [INFO] [stdout] | [INFO] [stdout] 217 | let steps = self.paramSteps(); [INFO] [stdout] | ^^^^^^^^^^- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 1 argument [INFO] [stdout] ... [INFO] [stdout] 414 | fn paramSteps(&mut self, stepCount: Option>) -> u8 { [INFO] [stdout] | ------------------------------------------------------------ defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `forEach` found for type `u8` in the current scope [INFO] [stdout] --> src/posterizer.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | steps.forEach(|item| { [INFO] [stdout] | ^^^^^^^ method not found in `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `indexOf` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:234:27 [INFO] [stdout] | [INFO] [stdout] 234 | if colorStops.indexOf(item) == -1 && between(item, 0, 255) { [INFO] [stdout] | ^^^^^^^ method not found in `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:234:64 [INFO] [stdout] | [INFO] [stdout] 234 | if colorStops.indexOf(item) == -1 && between(item, 0, 255) { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | expected `f64`, found integer [INFO] [stdout] | help: use a float literal: `0.0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:234:64 [INFO] [stdout] | [INFO] [stdout] 234 | if colorStops.indexOf(item) == -1 && between(item, 0, 255) { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | expected `f64`, found integer [INFO] [stdout] | help: use a float literal: `0.0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:234:67 [INFO] [stdout] | [INFO] [stdout] 234 | if colorStops.indexOf(item) == -1 && between(item, 0, 255) { [INFO] [stdout] | ^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `f64`, found integer [INFO] [stdout] | help: use a float literal: `255.0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:235:33 [INFO] [stdout] | [INFO] [stdout] 235 | colorStops.push(item) [INFO] [stdout] | ^^^^ expected `u8`, found `f64` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:240:29 [INFO] [stdout] | [INFO] [stdout] 240 | colorStops.push(threshold) [INFO] [stdout] | ^^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert an `i32` to `u8` and panic if the converted value wouldn't fit [INFO] [stdout] | [INFO] [stdout] 240 | colorStops.push(threshold.try_into().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> src/posterizer.rs:243:33 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^^^^ ------------------------------------------------------------- supplied 1 argument [INFO] [stdout] | | [INFO] [stdout] | expected 0 arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:234:67 [INFO] [stdout] | [INFO] [stdout] 234 | if colorStops.indexOf(item) == -1 && between(item, 0, 255) { [INFO] [stdout] | ^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `f64`, found integer [INFO] [stdout] | help: use a float literal: `255.0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:235:33 [INFO] [stdout] | [INFO] [stdout] 235 | colorStops.push(item) [INFO] [stdout] | ^^^^ expected `u8`, found `f64` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:240:29 [INFO] [stdout] | [INFO] [stdout] 240 | colorStops.push(threshold) [INFO] [stdout] | ^^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert an `i32` to `u8` and panic if the converted value wouldn't fit [INFO] [stdout] | [INFO] [stdout] 240 | colorStops.push(threshold.try_into().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> src/posterizer.rs:243:33 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^^^^ ------------------------------------------------------------- supplied 1 argument [INFO] [stdout] | | [INFO] [stdout] | expected 0 arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:243:22 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Vec`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:245:52 [INFO] [stdout] | [INFO] [stdout] 245 | if lookingForDarkPixels && colorStops[0] < threshold { [INFO] [stdout] | ^^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert `colorStops[0]` from `u8` to `i32`, matching the type of `threshold` [INFO] [stdout] | [INFO] [stdout] 245 | if lookingForDarkPixels && i32::from(colorStops[0]) < threshold { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `unshift` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:246:24 [INFO] [stdout] | [INFO] [stdout] 246 | colorStops.unshift(threshold) [INFO] [stdout] | ^^^^^^^ method not found in `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:247:66 [INFO] [stdout] | [INFO] [stdout] 247 | } else if !lookingForDarkPixels && colorStops[colorStops.length - 1] < threshold { [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:248:29 [INFO] [stdout] | [INFO] [stdout] 248 | colorStops.push(threshold) [INFO] [stdout] | ^^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert an `i32` to `u8` and panic if the converted value wouldn't fit [INFO] [stdout] | [INFO] [stdout] 248 | colorStops.push(threshold.try_into().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:243:22 [INFO] [stdout] | [INFO] [stdout] 243 | colorStops = colorStops.sort(|a, b| { if a < b == lookingForDarkPixels { 1 } else { -1 } }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Vec`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:245:52 [INFO] [stdout] | [INFO] [stdout] 245 | if lookingForDarkPixels && colorStops[0] < threshold { [INFO] [stdout] | ^^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert `colorStops[0]` from `u8` to `i32`, matching the type of `threshold` [INFO] [stdout] | [INFO] [stdout] 245 | if lookingForDarkPixels && i32::from(colorStops[0]) < threshold { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `unshift` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:246:24 [INFO] [stdout] | [INFO] [stdout] 246 | colorStops.unshift(threshold) [INFO] [stdout] | ^^^^^^^ method not found in `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:247:66 [INFO] [stdout] | [INFO] [stdout] 247 | } else if !lookingForDarkPixels && colorStops[colorStops.length - 1] < threshold { [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:248:29 [INFO] [stdout] | [INFO] [stdout] 248 | colorStops.push(threshold) [INFO] [stdout] | ^^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert an `i32` to `u8` and panic if the converted value wouldn't fit [INFO] [stdout] | [INFO] [stdout] 248 | colorStops.push(threshold.try_into().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:251:40 [INFO] [stdout] | [INFO] [stdout] 251 | return self.calcColorIntensity(colorStops) [INFO] [stdout] | ^^^^^^^^^^ expected `i32`, found `u8` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:251:40 [INFO] [stdout] | [INFO] [stdout] 251 | return self.calcColorIntensity(colorStops) [INFO] [stdout] | ^^^^^^^^^^ expected `i32`, found `u8` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:257:37 [INFO] [stdout] | [INFO] [stdout] 257 | let steps = self.paramSteps(true); [INFO] [stdout] | ^^^^ expected enum `Option`, found `bool` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `bool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:261:30 [INFO] [stdout] | [INFO] [stdout] 261 | if self.threshold == THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `multilevelThresholding` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:262:36 [INFO] [stdout] | [INFO] [stdout] 262 | colorStops = histogram.multilevelThresholding(steps) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `multilevel_thresholding` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `multilevelThresholding` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `multilevelThresholding` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:267:27 [INFO] [stdout] | [INFO] [stdout] 267 | histogram.multilevelThresholding(steps - 1, 0, threshold) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `multilevel_thresholding` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `multilevelThresholding` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `multilevelThresholding` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:269:27 [INFO] [stdout] | [INFO] [stdout] 269 | histogram.multilevelThresholding(steps - 1, threshold, 255) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `multilevel_thresholding` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `multilevelThresholding` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:273:33 [INFO] [stdout] | [INFO] [stdout] 273 | colorStops.push(threshold) [INFO] [stdout] | ^^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert an `i32` to `u8` and panic if the converted value wouldn't fit [INFO] [stdout] | [INFO] [stdout] 273 | colorStops.push(threshold.try_into().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `unshift` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:275:28 [INFO] [stdout] | [INFO] [stdout] 275 | colorStops.unshift(threshold) [INFO] [stdout] | ^^^^^^^ method not found in `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:257:37 [INFO] [stdout] | [INFO] [stdout] 257 | let steps = self.paramSteps(true); [INFO] [stdout] | ^^^^ expected enum `Option`, found `bool` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `bool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:280:26 [INFO] [stdout] | [INFO] [stdout] 280 | colorStops = colorStops.reverse() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ expected struct `Vec`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:261:30 [INFO] [stdout] | [INFO] [stdout] 261 | if self.threshold == THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `multilevelThresholding` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:262:36 [INFO] [stdout] | [INFO] [stdout] 262 | colorStops = histogram.multilevelThresholding(steps) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `multilevel_thresholding` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `multilevelThresholding` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `multilevelThresholding` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:267:27 [INFO] [stdout] | [INFO] [stdout] 267 | histogram.multilevelThresholding(steps - 1, 0, threshold) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `multilevel_thresholding` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `multilevelThresholding` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `multilevelThresholding` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:269:27 [INFO] [stdout] | [INFO] [stdout] 269 | histogram.multilevelThresholding(steps - 1, threshold, 255) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `multilevel_thresholding` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `multilevelThresholding` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:273:33 [INFO] [stdout] | [INFO] [stdout] 273 | colorStops.push(threshold) [INFO] [stdout] | ^^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] | [INFO] [stdout] help: you can convert an `i32` to `u8` and panic if the converted value wouldn't fit [INFO] [stdout] | [INFO] [stdout] 273 | colorStops.push(threshold.try_into().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `unshift` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:275:28 [INFO] [stdout] | [INFO] [stdout] 275 | colorStops.unshift(threshold) [INFO] [stdout] | ^^^^^^^ method not found in `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:283:40 [INFO] [stdout] | [INFO] [stdout] 283 | return self.calcColorIntensity(colorStops) [INFO] [stdout] | ^^^^^^^^^^ expected `i32`, found `u8` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/posterizer.rs:291:26 [INFO] [stdout] | [INFO] [stdout] 291 | let steps = self.paramSteps(); [INFO] [stdout] | ^^^^^^^^^^- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 1 argument [INFO] [stdout] ... [INFO] [stdout] 414 | fn paramSteps(&mut self, stepCount: Option>) -> u8 { [INFO] [stdout] | ------------------------------------------------------------ defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:292:44 [INFO] [stdout] | [INFO] [stdout] 292 | let stepSize = colorsToThreshold / steps; [INFO] [stdout] | ^^^^^ expected `i32`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot divide `i32` by `u8` [INFO] [stdout] --> src/posterizer.rs:292:42 [INFO] [stdout] | [INFO] [stdout] 292 | let stepSize = colorsToThreshold / steps; [INFO] [stdout] | ^ no implementation for `i32 / u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Div` is not implemented for `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:297:71 [INFO] [stdout] | [INFO] [stdout] 297 | let mut threshold = Math.min(colorsToThreshold, (i + 1) * stepSize); [INFO] [stdout] | ^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `i32` to `u8` [INFO] [stdout] --> src/posterizer.rs:297:69 [INFO] [stdout] | [INFO] [stdout] 297 | let mut threshold = Math.min(colorsToThreshold, (i + 1) * stepSize); [INFO] [stdout] | ^ no implementation for `u8 * i32` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Mul` is not implemented for `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `push` found for array `[_; 0]` in the current scope [INFO] [stdout] --> src/posterizer.rs:300:24 [INFO] [stdout] | [INFO] [stdout] 300 | colorStops.push(threshold) [INFO] [stdout] | ^^^^ method not found in `[_; 0]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:280:26 [INFO] [stdout] | [INFO] [stdout] 280 | colorStops = colorStops.reverse() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ expected struct `Vec`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:283:40 [INFO] [stdout] | [INFO] [stdout] 283 | return self.calcColorIntensity(colorStops) [INFO] [stdout] | ^^^^^^^^^^ expected `i32`, found `u8` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/posterizer.rs:291:26 [INFO] [stdout] | [INFO] [stdout] 291 | let steps = self.paramSteps(); [INFO] [stdout] | ^^^^^^^^^^- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 1 argument [INFO] [stdout] ... [INFO] [stdout] 414 | fn paramSteps(&mut self, stepCount: Option>) -> u8 { [INFO] [stdout] | ------------------------------------------------------------ defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:292:44 [INFO] [stdout] | [INFO] [stdout] 292 | let stepSize = colorsToThreshold / steps; [INFO] [stdout] | ^^^^^ expected `i32`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot divide `i32` by `u8` [INFO] [stdout] --> src/posterizer.rs:292:42 [INFO] [stdout] | [INFO] [stdout] 292 | let stepSize = colorsToThreshold / steps; [INFO] [stdout] | ^ no implementation for `i32 / u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Div` is not implemented for `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:297:71 [INFO] [stdout] | [INFO] [stdout] 297 | let mut threshold = Math.min(colorsToThreshold, (i + 1) * stepSize); [INFO] [stdout] | ^^^^^^^^ expected `u8`, found `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `i32` to `u8` [INFO] [stdout] --> src/posterizer.rs:297:69 [INFO] [stdout] | [INFO] [stdout] 297 | let mut threshold = Math.min(colorsToThreshold, (i + 1) * stepSize); [INFO] [stdout] | ^ no implementation for `u8 * i32` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Mul` is not implemented for `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `push` found for array `[_; 0]` in the current scope [INFO] [stdout] --> src/posterizer.rs:300:24 [INFO] [stdout] | [INFO] [stdout] 300 | colorStops.push(threshold) [INFO] [stdout] | ^^^^ method not found in `[_; 0]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:303:40 [INFO] [stdout] | [INFO] [stdout] 303 | return self.calcColorIntensity(colorStops) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Vec`, found array of 0 elements [INFO] [stdout] | help: try using a conversion method: `colorStops.to_vec()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found array `[_; 0]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:303:40 [INFO] [stdout] | [INFO] [stdout] 303 | return self.calcColorIntensity(colorStops) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Vec`, found array of 0 elements [INFO] [stdout] | help: try using a conversion method: `colorStops.to_vec()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found array `[_; 0]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:309:20 [INFO] [stdout] | [INFO] [stdout] 307 | fn paramThreshold(&mut self) -> i32 { [INFO] [stdout] | --- expected `i32` because of return type [INFO] [stdout] 308 | if self.calculatedThreshold.is_some() { [INFO] [stdout] 309 | return self.calculatedThreshold [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `i32` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:309:20 [INFO] [stdout] | [INFO] [stdout] 307 | fn paramThreshold(&mut self) -> i32 { [INFO] [stdout] | --- expected `i32` because of return type [INFO] [stdout] 308 | if self.calculatedThreshold.is_some() { [INFO] [stdout] 309 | return self.calculatedThreshold [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `i32` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:312:30 [INFO] [stdout] | [INFO] [stdout] 312 | if self.threshold != THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `multilevelThresholding` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:317:54 [INFO] [stdout] | [INFO] [stdout] 317 | let twoThresholds = self.getImageHistogram().multilevelThresholding(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `multilevel_thresholding` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `multilevelThresholding` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:312:30 [INFO] [stdout] | [INFO] [stdout] 312 | if self.threshold != THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `multilevelThresholding` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:317:54 [INFO] [stdout] | [INFO] [stdout] 317 | let twoThresholds = self.getImageHistogram().multilevelThresholding(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `multilevel_thresholding` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `multilevelThresholding` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:319:36 [INFO] [stdout] | [INFO] [stdout] 319 | self.calculatedThreshold = self.calculatedThreshold || 128; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:319:36 [INFO] [stdout] | [INFO] [stdout] 319 | self.calculatedThreshold = self.calculatedThreshold || 128; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:319:64 [INFO] [stdout] | [INFO] [stdout] 319 | self.calculatedThreshold = self.calculatedThreshold || 128; [INFO] [stdout] | ^^^ expected `bool`, found integer [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:319:64 [INFO] [stdout] | [INFO] [stdout] 319 | self.calculatedThreshold = self.calculatedThreshold || 128; [INFO] [stdout] | ^^^ expected `bool`, found integer [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:319:36 [INFO] [stdout] | [INFO] [stdout] 319 | self.calculatedThreshold = self.calculatedThreshold || 128; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `Option`, found `bool` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `bool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:331:43 [INFO] [stdout] | [INFO] [stdout] 331 | let lastColorStop = ranges[ranges.length - 1]; [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getStats` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:337:36 [INFO] [stdout] | [INFO] [stdout] 337 | let levels = histogram.getStats(lastRangeFrom, lastRangeTo).levels; [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `get_stats` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `getStats` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getStats` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:346:56 [INFO] [stdout] | [INFO] [stdout] 346 | let newStats = if blackOnWhite { histogram.getStats(0, newColorStop) } else { histogram.getStats(newColorStop, 255) }; [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `get_stats` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `getStats` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getStats` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:346:101 [INFO] [stdout] | [INFO] [stdout] 346 | let newStats = if blackOnWhite { histogram.getStats(0, newColorStop) } else { histogram.getStats(newColorStop, 255) }; [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `get_stats` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `getStats` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:319:36 [INFO] [stdout] | [INFO] [stdout] 319 | self.calculatedThreshold = self.calculatedThreshold || 128; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `Option`, found `bool` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `bool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:331:43 [INFO] [stdout] | [INFO] [stdout] 331 | let lastColorStop = ranges[ranges.length - 1]; [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getStats` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:337:36 [INFO] [stdout] | [INFO] [stdout] 337 | let levels = histogram.getStats(lastRangeFrom, lastRangeTo).levels; [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `get_stats` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `getStats` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getStats` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:346:56 [INFO] [stdout] | [INFO] [stdout] 346 | let newStats = if blackOnWhite { histogram.getStats(0, newColorStop) } else { histogram.getStats(newColorStop, 255) }; [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `get_stats` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `getStats` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getStats` found for struct `Histogram` in the current scope [INFO] [stdout] --> src/posterizer.rs:346:101 [INFO] [stdout] | [INFO] [stdout] 346 | let newStats = if blackOnWhite { histogram.getStats(0, newColorStop) } else { histogram.getStats(newColorStop, 255) }; [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `get_stats` [INFO] [stdout] | [INFO] [stdout] ::: src/types/histogram.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Histogram { [INFO] [stdout] | -------------------- method `getStats` not found for this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:355:16 [INFO] [stdout] | [INFO] [stdout] 329 | fn addExtraColorStop(&mut self, ranges: Vec) { [INFO] [stdout] | - expected `()` because of default return type [INFO] [stdout] ... [INFO] [stdout] 355 | return ranges [INFO] [stdout] | ^^^^^^ expected `()`, found struct `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected unit type `()` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:355:16 [INFO] [stdout] | [INFO] [stdout] 329 | fn addExtraColorStop(&mut self, ranges: Vec) { [INFO] [stdout] | - expected `()` because of default return type [INFO] [stdout] ... [INFO] [stdout] 355 | return ranges [INFO] [stdout] | ^^^^^^ expected `()`, found struct `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected unit type `()` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:362:51 [INFO] [stdout] | [INFO] [stdout] 362 | let histogram = if colorSelectionStrat == FILL_SPREAD { None } else { self.getImageHistogram() }; [INFO] [stdout] | ^^^^^^^^^^^ expected enum `Option`, found struct `String` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:362:51 [INFO] [stdout] | [INFO] [stdout] 362 | let histogram = if colorSelectionStrat == FILL_SPREAD { None } else { self.getImageHistogram() }; [INFO] [stdout] | ^^^^^^^^^^^ expected enum `Option`, found struct `String` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `if` and `else` have incompatible types [INFO] [stdout] --> src/posterizer.rs:362:79 [INFO] [stdout] | [INFO] [stdout] 362 | let histogram = if colorSelectionStrat == FILL_SPREAD { None } else { self.getImageHistogram() }; [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `Option`, found struct `Histogram` [INFO] [stdout] | | [INFO] [stdout] | expected because of this [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option<_>` [INFO] [stdout] found struct `Histogram` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `map` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:365:27 [INFO] [stdout] | [INFO] [stdout] 365 | return colorStops.map(|threshold, index| { [INFO] [stdout] | ^^^ method not found in `Vec` [INFO] [stdout] | [INFO] [stdout] = note: the method `map` exists but the following trait bounds were not satisfied: [INFO] [stdout] `Vec: Iterator` [INFO] [stdout] which is required by `&mut Vec: Iterator` [INFO] [stdout] `[i32]: Iterator` [INFO] [stdout] which is required by `&mut [i32]: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:367:44 [INFO] [stdout] | [INFO] [stdout] 367 | if index + 1 == colorStops.length { [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0689]: can't call method `round` on ambiguous numeric type `{integer}` [INFO] [stdout] --> src/posterizer.rs:372:85 [INFO] [stdout] | [INFO] [stdout] 372 | let rangeStart = (if blackOnWhite { nextValue + 1 } else { threshold }).round(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0689]: can't call method `round` on ambiguous numeric type `{integer}` [INFO] [stdout] --> src/posterizer.rs:373:83 [INFO] [stdout] | [INFO] [stdout] 373 | let rangeEnd = (if blackOnWhite { threshold } else { nextValue - 1 }).round(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:374:46 [INFO] [stdout] | [INFO] [stdout] 374 | let factor = index / (colorStops.length - 1); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:386:17 [INFO] [stdout] | [INFO] [stdout] 385 | let color = match colorSelectionStrat { [INFO] [stdout] | ------------------- this expression has type `Option>` [INFO] [stdout] 386 | FILL_SPREAD => [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `String` [INFO] [stdout] | `FILL_SPREAD` is interpreted as a constant, not a new binding [INFO] [stdout] | help: introduce a new binding instead: `other_fill_spread` [INFO] [stdout] | [INFO] [stdout] ::: src/constants.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub const FILL_SPREAD: String = "spread".to_owned(); [INFO] [stdout] | ---------------------------------------------------- constant defined here [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:389:17 [INFO] [stdout] | [INFO] [stdout] 385 | let color = match colorSelectionStrat { [INFO] [stdout] | ------------------- this expression has type `Option>` [INFO] [stdout] ... [INFO] [stdout] 389 | FILL_DOMINANT => histogram.getDominantColor(rangeStart, rangeEnd, clamp(intervalSize, 1, 5)), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `String` [INFO] [stdout] | `FILL_DOMINANT` is interpreted as a constant, not a new binding [INFO] [stdout] | help: introduce a new binding instead: `other_fill_dominant` [INFO] [stdout] | [INFO] [stdout] ::: src/constants.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub const FILL_DOMINANT: String = "dominant".to_owned(); [INFO] [stdout] | -------------------------------------------------------- constant defined here [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:390:17 [INFO] [stdout] | [INFO] [stdout] 385 | let color = match colorSelectionStrat { [INFO] [stdout] | ------------------- this expression has type `Option>` [INFO] [stdout] ... [INFO] [stdout] 390 | FILL_MEAN => stats.levels.mean, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `String` [INFO] [stdout] | `FILL_MEAN` is interpreted as a constant, not a new binding [INFO] [stdout] | help: introduce a new binding instead: `other_fill_mean` [INFO] [stdout] | [INFO] [stdout] ::: src/constants.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub const FILL_MEAN: String = "mean".to_owned(); [INFO] [stdout] | ------------------------------------------------ constant defined here [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:391:17 [INFO] [stdout] | [INFO] [stdout] 385 | let color = match colorSelectionStrat { [INFO] [stdout] | ------------------- this expression has type `Option>` [INFO] [stdout] ... [INFO] [stdout] 391 | FILL_MEDIAN => stats.levels.median, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `String` [INFO] [stdout] | `FILL_MEDIAN` is interpreted as a constant, not a new binding [INFO] [stdout] | help: introduce a new binding instead: `other_fill_median` [INFO] [stdout] | [INFO] [stdout] ::: src/constants.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | pub const FILL_MEDIAN: String = "median".to_owned(); [INFO] [stdout] | ---------------------------------------------------- constant defined here [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `u8: Neg` is not satisfied [INFO] [stdout] --> src/posterizer.rs:368:38 [INFO] [stdout] | [INFO] [stdout] 368 | if blackOnWhite {-1} else {256} [INFO] [stdout] | ^^ the trait `Neg` is not implemented for `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `{float}: Ord` is not satisfied [INFO] [stdout] --> src/posterizer.rs:387:127 [INFO] [stdout] | [INFO] [stdout] 387 | ...hite { 1 } else { -1 }) * intervalSize * max(0.5, fullRange / 255) * factor, [INFO] [stdout] | ^^^ the trait `Ord` is not implemented for `{float}` [INFO] [stdout] | [INFO] [stdout] = help: the following implementations were found: [INFO] [stdout] [INFO] [stdout] <&A as Ord> [INFO] [stdout] <&mut A as Ord> [INFO] [stdout] <() as Ord> [INFO] [stdout] and 263 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `if` and `else` have incompatible types [INFO] [stdout] --> src/posterizer.rs:362:79 [INFO] [stdout] | [INFO] [stdout] 362 | let histogram = if colorSelectionStrat == FILL_SPREAD { None } else { self.getImageHistogram() }; [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `Option`, found struct `Histogram` [INFO] [stdout] | | [INFO] [stdout] | expected because of this [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option<_>` [INFO] [stdout] found struct `Histogram` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `map` found for struct `Vec` in the current scope [INFO] [stdout] --> src/posterizer.rs:365:27 [INFO] [stdout] | [INFO] [stdout] 365 | return colorStops.map(|threshold, index| { [INFO] [stdout] | ^^^ method not found in `Vec` [INFO] [stdout] | [INFO] [stdout] = note: the method `map` exists but the following trait bounds were not satisfied: [INFO] [stdout] `Vec: Iterator` [INFO] [stdout] which is required by `&mut Vec: Iterator` [INFO] [stdout] `[i32]: Iterator` [INFO] [stdout] which is required by `&mut [i32]: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:367:44 [INFO] [stdout] | [INFO] [stdout] 367 | if index + 1 == colorStops.length { [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0689]: can't call method `round` on ambiguous numeric type `{integer}` [INFO] [stdout] --> src/posterizer.rs:372:85 [INFO] [stdout] | [INFO] [stdout] 372 | let rangeStart = (if blackOnWhite { nextValue + 1 } else { threshold }).round(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0689]: can't call method `round` on ambiguous numeric type `{integer}` [INFO] [stdout] --> src/posterizer.rs:373:83 [INFO] [stdout] | [INFO] [stdout] 373 | let rangeEnd = (if blackOnWhite { threshold } else { nextValue - 1 }).round(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Vec` [INFO] [stdout] --> src/posterizer.rs:374:46 [INFO] [stdout] | [INFO] [stdout] 374 | let factor = index / (colorStops.length - 1); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:386:17 [INFO] [stdout] | [INFO] [stdout] 385 | let color = match colorSelectionStrat { [INFO] [stdout] | ------------------- this expression has type `Option>` [INFO] [stdout] 386 | FILL_SPREAD => [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `String` [INFO] [stdout] | `FILL_SPREAD` is interpreted as a constant, not a new binding [INFO] [stdout] | help: introduce a new binding instead: `other_fill_spread` [INFO] [stdout] | [INFO] [stdout] ::: src/constants.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub const FILL_SPREAD: String = "spread".to_owned(); [INFO] [stdout] | ---------------------------------------------------- constant defined here [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:389:17 [INFO] [stdout] | [INFO] [stdout] 385 | let color = match colorSelectionStrat { [INFO] [stdout] | ------------------- this expression has type `Option>` [INFO] [stdout] ... [INFO] [stdout] 389 | FILL_DOMINANT => histogram.getDominantColor(rangeStart, rangeEnd, clamp(intervalSize, 1, 5)), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `String` [INFO] [stdout] | `FILL_DOMINANT` is interpreted as a constant, not a new binding [INFO] [stdout] | help: introduce a new binding instead: `other_fill_dominant` [INFO] [stdout] | [INFO] [stdout] ::: src/constants.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub const FILL_DOMINANT: String = "dominant".to_owned(); [INFO] [stdout] | -------------------------------------------------------- constant defined here [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:390:17 [INFO] [stdout] | [INFO] [stdout] 385 | let color = match colorSelectionStrat { [INFO] [stdout] | ------------------- this expression has type `Option>` [INFO] [stdout] ... [INFO] [stdout] 390 | FILL_MEAN => stats.levels.mean, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `String` [INFO] [stdout] | `FILL_MEAN` is interpreted as a constant, not a new binding [INFO] [stdout] | help: introduce a new binding instead: `other_fill_mean` [INFO] [stdout] | [INFO] [stdout] ::: src/constants.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub const FILL_MEAN: String = "mean".to_owned(); [INFO] [stdout] | ------------------------------------------------ constant defined here [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:391:17 [INFO] [stdout] | [INFO] [stdout] 385 | let color = match colorSelectionStrat { [INFO] [stdout] | ------------------- this expression has type `Option>` [INFO] [stdout] ... [INFO] [stdout] 391 | FILL_MEDIAN => stats.levels.median, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `Option`, found struct `String` [INFO] [stdout] | `FILL_MEDIAN` is interpreted as a constant, not a new binding [INFO] [stdout] | help: introduce a new binding instead: `other_fill_median` [INFO] [stdout] | [INFO] [stdout] ::: src/constants.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | pub const FILL_MEDIAN: String = "median".to_owned(); [INFO] [stdout] | ---------------------------------------------------- constant defined here [INFO] [stdout] | [INFO] [stdout] = note: expected type `Option>` [INFO] [stdout] found struct `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `u8: Neg` is not satisfied [INFO] [stdout] --> src/posterizer.rs:368:38 [INFO] [stdout] | [INFO] [stdout] 368 | if blackOnWhite {-1} else {256} [INFO] [stdout] | ^^ the trait `Neg` is not implemented for `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `{float}: Ord` is not satisfied [INFO] [stdout] --> src/posterizer.rs:387:127 [INFO] [stdout] | [INFO] [stdout] 387 | ...hite { 1 } else { -1 }) * intervalSize * max(0.5, fullRange / 255) * factor, [INFO] [stdout] | ^^^ the trait `Ord` is not implemented for `{float}` [INFO] [stdout] | [INFO] [stdout] = help: the following implementations were found: [INFO] [stdout] [INFO] [stdout] <&A as Ord> [INFO] [stdout] <&mut A as Ord> [INFO] [stdout] <() as Ord> [INFO] [stdout] and 263 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:387:136 [INFO] [stdout] | [INFO] [stdout] 387 | ...se { -1 }) * intervalSize * max(0.5, fullRange / 255) * factor, [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected floating-point number, found `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `luminanceData` on type `&Posterizer` [INFO] [stdout] --> src/posterizer.rs:411:53 [INFO] [stdout] | [INFO] [stdout] 411 | fn getImageHistogram(&self) -> Histogram { self.luminanceData.histogram() } [INFO] [stdout] | ^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `potrace`, `calculatedThreshold`, `threshold`, `blackOnWhite`, `background` ... and 3 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:387:136 [INFO] [stdout] | [INFO] [stdout] 387 | ...se { -1 }) * intervalSize * max(0.5, fullRange / 255) * factor, [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected floating-point number, found `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `luminanceData` on type `&Posterizer` [INFO] [stdout] --> src/posterizer.rs:411:53 [INFO] [stdout] | [INFO] [stdout] 411 | fn getImageHistogram(&self) -> Histogram { self.luminanceData.histogram() } [INFO] [stdout] | ^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `potrace`, `calculatedThreshold`, `threshold`, `blackOnWhite`, `background` ... and 3 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/posterizer.rs:420:21 [INFO] [stdout] | [INFO] [stdout] 418 | let count = match stepCount { [INFO] [stdout] | _____________________- [INFO] [stdout] 419 | | Some(val) => val, [INFO] [stdout] | | --- this is found to be of type `Box` [INFO] [stdout] 420 | | None => false [INFO] [stdout] | | ^^^^^ expected struct `Box`, found `bool` [INFO] [stdout] 421 | | }; [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] = note: expected type `Box` [INFO] [stdout] found type `bool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Option>>` [INFO] [stdout] --> src/posterizer.rs:424:26 [INFO] [stdout] | [INFO] [stdout] 424 | return steps.length [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/posterizer.rs:420:21 [INFO] [stdout] | [INFO] [stdout] 418 | let count = match stepCount { [INFO] [stdout] | _____________________- [INFO] [stdout] 419 | | Some(val) => val, [INFO] [stdout] | | --- this is found to be of type `Box` [INFO] [stdout] 420 | | None => false [INFO] [stdout] | | ^^^^^ expected struct `Box`, found `bool` [INFO] [stdout] 421 | | }; [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] = note: expected type `Box` [INFO] [stdout] found type `bool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `length` on type `Option>>` [INFO] [stdout] --> src/posterizer.rs:424:26 [INFO] [stdout] | [INFO] [stdout] 424 | return steps.length [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:427:21 [INFO] [stdout] | [INFO] [stdout] 427 | if steps == STEPS_AUTO && threshold == THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:427:21 [INFO] [stdout] | [INFO] [stdout] 427 | if steps == STEPS_AUTO && threshold == THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:427:48 [INFO] [stdout] | [INFO] [stdout] 427 | if steps == STEPS_AUTO && threshold == THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:427:48 [INFO] [stdout] | [INFO] [stdout] 427 | if steps == STEPS_AUTO && threshold == THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:437:28 [INFO] [stdout] | [INFO] [stdout] 437 | return if steps == STEPS_AUTO { [INFO] [stdout] | ^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `scan` found for enum `DynamicImage` in the current scope [INFO] [stdout] --> src/potrace.rs:104:15 [INFO] [stdout] | [INFO] [stdout] 104 | image.scan(0, 0, bitmap.width, bitmap.height, |i| { [INFO] [stdout] | ^^^^ method not found in `DynamicImage` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/image-0.23.9/./src/dynimage.rs:40:1 [INFO] [stdout] | [INFO] [stdout] 40 | pub enum DynamicImage { [INFO] [stdout] | --------------------- doesn't satisfy `DynamicImage: Iterator` [INFO] [stdout] | [INFO] [stdout] = note: the method `scan` exists but the following trait bounds were not satisfied: [INFO] [stdout] `DynamicImage: Iterator` [INFO] [stdout] which is required by `&mut DynamicImage: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot divide `Rgba` by `{integer}` [INFO] [stdout] --> src/potrace.rs:106:41 [INFO] [stdout] | [INFO] [stdout] 106 | let opacity = pixels[i + 3] / 255; [INFO] [stdout] | ------------- ^ --- {integer} [INFO] [stdout] | | [INFO] [stdout] | Rgba [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba` [INFO] [stdout] --> src/potrace.rs:108:38 [INFO] [stdout] | [INFO] [stdout] 108 | 255 + (pixels[i + 0] - 255) * opacity, [INFO] [stdout] | ------------- ^ --- {integer} [INFO] [stdout] | | [INFO] [stdout] | Rgba [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba` [INFO] [stdout] --> src/potrace.rs:109:38 [INFO] [stdout] | [INFO] [stdout] 109 | 255 + (pixels[i + 1] - 255) * opacity, [INFO] [stdout] | ------------- ^ --- {integer} [INFO] [stdout] | | [INFO] [stdout] | Rgba [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba` [INFO] [stdout] --> src/potrace.rs:110:38 [INFO] [stdout] | [INFO] [stdout] 110 | 255 + (pixels[i + 2] - 255) * opacity, [INFO] [stdout] | ------------- ^ --- {integer} [INFO] [stdout] | | [INFO] [stdout] | Rgba [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/potrace.rs:121:40 [INFO] [stdout] | [INFO] [stdout] 121 | let width = self.luminanceData.width; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/potrace.rs:122:41 [INFO] [stdout] | [INFO] [stdout] 122 | let height = self.luminanceData.height; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 3 arguments but 0 arguments were supplied [INFO] [stdout] --> src/potrace.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | let path = self.get_path_tag(); [INFO] [stdout] | ^^^^^^^^^^^^- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 3 arguments [INFO] [stdout] ... [INFO] [stdout] 173 | / pub fn get_path_tag( [INFO] [stdout] 174 | | &self, [INFO] [stdout] 175 | | fillColor: Option>, [INFO] [stdout] 176 | | x: Option>, [INFO] [stdout] 177 | | y: Option>, [INFO] [stdout] 178 | | ) -> String { [INFO] [stdout] | |_______________- defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/posterizer.rs:437:28 [INFO] [stdout] | [INFO] [stdout] 437 | return if steps == STEPS_AUTO { [INFO] [stdout] | ^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `scan` found for enum `DynamicImage` in the current scope [INFO] [stdout] --> src/potrace.rs:104:15 [INFO] [stdout] | [INFO] [stdout] 104 | image.scan(0, 0, bitmap.width, bitmap.height, |i| { [INFO] [stdout] | ^^^^ method not found in `DynamicImage` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/image-0.23.9/./src/dynimage.rs:40:1 [INFO] [stdout] | [INFO] [stdout] 40 | pub enum DynamicImage { [INFO] [stdout] | --------------------- doesn't satisfy `DynamicImage: Iterator` [INFO] [stdout] | [INFO] [stdout] = note: the method `scan` exists but the following trait bounds were not satisfied: [INFO] [stdout] `DynamicImage: Iterator` [INFO] [stdout] which is required by `&mut DynamicImage: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot divide `Rgba` by `{integer}` [INFO] [stdout] --> src/potrace.rs:106:41 [INFO] [stdout] | [INFO] [stdout] 106 | let opacity = pixels[i + 3] / 255; [INFO] [stdout] | ------------- ^ --- {integer} [INFO] [stdout] | | [INFO] [stdout] | Rgba [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba` [INFO] [stdout] --> src/potrace.rs:108:38 [INFO] [stdout] | [INFO] [stdout] 108 | 255 + (pixels[i + 0] - 255) * opacity, [INFO] [stdout] | ------------- ^ --- {integer} [INFO] [stdout] | | [INFO] [stdout] | Rgba [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba` [INFO] [stdout] --> src/potrace.rs:109:38 [INFO] [stdout] | [INFO] [stdout] 109 | 255 + (pixels[i + 1] - 255) * opacity, [INFO] [stdout] | ------------- ^ --- {integer} [INFO] [stdout] | | [INFO] [stdout] | Rgba [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba` [INFO] [stdout] --> src/potrace.rs:110:38 [INFO] [stdout] | [INFO] [stdout] 110 | 255 + (pixels[i + 2] - 255) * opacity, [INFO] [stdout] | ------------- ^ --- {integer} [INFO] [stdout] | | [INFO] [stdout] | Rgba [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/potrace.rs:121:40 [INFO] [stdout] | [INFO] [stdout] 121 | let width = self.luminanceData.width; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/potrace.rs:122:41 [INFO] [stdout] | [INFO] [stdout] 122 | let height = self.luminanceData.height; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 3 arguments but 0 arguments were supplied [INFO] [stdout] --> src/potrace.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | let path = self.get_path_tag(); [INFO] [stdout] | ^^^^^^^^^^^^- supplied 0 arguments [INFO] [stdout] | | [INFO] [stdout] | expected 3 arguments [INFO] [stdout] ... [INFO] [stdout] 173 | / pub fn get_path_tag( [INFO] [stdout] 174 | | &self, [INFO] [stdout] 175 | | fillColor: Option>, [INFO] [stdout] 176 | | x: Option>, [INFO] [stdout] 177 | | y: Option>, [INFO] [stdout] 178 | | ) -> String { [INFO] [stdout] | |_______________- defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:135:21 [INFO] [stdout] | [INFO] [stdout] 135 | let width = self.params.width || self.luminanceData.width; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/potrace.rs:135:61 [INFO] [stdout] | [INFO] [stdout] 135 | let width = self.params.width || self.luminanceData.width; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:135:21 [INFO] [stdout] | [INFO] [stdout] 135 | let width = self.params.width || self.luminanceData.width; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/potrace.rs:135:61 [INFO] [stdout] | [INFO] [stdout] 135 | let width = self.params.width || self.luminanceData.width; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:136:22 [INFO] [stdout] | [INFO] [stdout] 136 | let height = self.params.height || self.luminanceData.height; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/potrace.rs:136:63 [INFO] [stdout] | [INFO] [stdout] 136 | let height = self.params.height || self.luminanceData.height; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:136:22 [INFO] [stdout] | [INFO] [stdout] 136 | let height = self.params.height || self.luminanceData.height; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/potrace.rs:136:63 [INFO] [stdout] | [INFO] [stdout] 136 | let height = self.params.height || self.luminanceData.height; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:140:16 [INFO] [stdout] | [INFO] [stdout] 140 | if self.params.width { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/potrace.rs:141:56 [INFO] [stdout] | [INFO] [stdout] 141 | self.params.width / self.luminanceData.width [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:140:16 [INFO] [stdout] | [INFO] [stdout] 140 | if self.params.width { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `width` on type `Option>` [INFO] [stdout] --> src/potrace.rs:141:56 [INFO] [stdout] | [INFO] [stdout] 141 | self.params.width / self.luminanceData.width [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | 1 [INFO] [stdout] | ^ expected enum `Option`, found integer [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `{integer}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | 1 [INFO] [stdout] | ^ expected enum `Option`, found integer [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `{integer}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:145:16 [INFO] [stdout] | [INFO] [stdout] 145 | if self.params.height { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/potrace.rs:146:57 [INFO] [stdout] | [INFO] [stdout] 146 | self.params.height / self.luminanceData.height [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:145:16 [INFO] [stdout] | [INFO] [stdout] 145 | if self.params.height { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `bool`, found enum `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `height` on type `Option>` [INFO] [stdout] --> src/potrace.rs:146:57 [INFO] [stdout] | [INFO] [stdout] 146 | self.params.height / self.luminanceData.height [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | 1 [INFO] [stdout] | ^ expected enum `Option`, found integer [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `{integer}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | 1 [INFO] [stdout] | ^ expected enum `Option`, found integer [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `{integer}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `background` on type `&Potrace` [INFO] [stdout] --> src/potrace.rs:161:23 [INFO] [stdout] | [INFO] [stdout] 161 | let bg = self.background; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `luminanceData`, `pathlist`, `imageLoaded`, `processed`, `params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `background` on type `&Potrace` [INFO] [stdout] --> src/potrace.rs:161:23 [INFO] [stdout] | [INFO] [stdout] 161 | let bg = self.background; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `luminanceData`, `pathlist`, `imageLoaded`, `processed`, `params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:163:20 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn get_bg(&self) -> String { [INFO] [stdout] | ------ expected `String` because of return type [INFO] [stdout] ... [INFO] [stdout] 163 | return ""; [INFO] [stdout] | ^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `String`, found `&str` [INFO] [stdout] | help: try using a conversion method: `"".to_string()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:163:20 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn get_bg(&self) -> String { [INFO] [stdout] | ------ expected `String` because of return type [INFO] [stdout] ... [INFO] [stdout] 163 | return ""; [INFO] [stdout] | ^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `String`, found `&str` [INFO] [stdout] | help: try using a conversion method: `"".to_string()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/potrace.rs:181:21 [INFO] [stdout] | [INFO] [stdout] 179 | let color = match fillColor { [INFO] [stdout] | _____________________- [INFO] [stdout] 180 | | Some(val) => *val, [INFO] [stdout] | | ---- this is found to be of type `String` [INFO] [stdout] 181 | | None => self.params.color, [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^ expected struct `String`, found enum `Option` [INFO] [stdout] 182 | | }; [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] = note: expected type `String` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/potrace.rs:181:21 [INFO] [stdout] | [INFO] [stdout] 179 | let color = match fillColor { [INFO] [stdout] | _____________________- [INFO] [stdout] 180 | | Some(val) => *val, [INFO] [stdout] | | ---- this is found to be of type `String` [INFO] [stdout] 181 | | None => self.params.color, [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^ expected struct `String`, found enum `Option` [INFO] [stdout] 182 | | }; [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] = note: expected type `String` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `map` found for struct `Vec` in the current scope [INFO] [stdout] --> src/potrace.rs:204:14 [INFO] [stdout] | [INFO] [stdout] 204 | .map(|path| path.curve.render_curve(x, y)) [INFO] [stdout] | ^^^ method not found in `Vec` [INFO] [stdout] | [INFO] [stdout] = note: the method `map` exists but the following trait bounds were not satisfied: [INFO] [stdout] `Vec: Iterator` [INFO] [stdout] which is required by `&mut Vec: Iterator` [INFO] [stdout] `[types::path::Path]: Iterator` [INFO] [stdout] which is required by `&mut [types::path::Path]: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `map` found for struct `Vec` in the current scope [INFO] [stdout] --> src/potrace.rs:204:14 [INFO] [stdout] | [INFO] [stdout] 204 | .map(|path| path.curve.render_curve(x, y)) [INFO] [stdout] | ^^^ method not found in `Vec` [INFO] [stdout] | [INFO] [stdout] = note: the method `map` exists but the following trait bounds were not satisfied: [INFO] [stdout] `Vec: Iterator` [INFO] [stdout] which is required by `&mut Vec: Iterator` [INFO] [stdout] `[types::path::Path]: Iterator` [INFO] [stdout] which is required by `&mut [types::path::Path]: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:215:53 [INFO] [stdout] | [INFO] [stdout] 215 | let threshold = if self.params.threshold == THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:215:53 [INFO] [stdout] | [INFO] [stdout] 215 | let threshold = if self.params.threshold == THRESHOLD_AUTO { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found type `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `histogram` found for enum `Option>` in the current scope [INFO] [stdout] --> src/potrace.rs:216:32 [INFO] [stdout] | [INFO] [stdout] 216 | self.luminanceData.histogram().auto_threshold() [INFO] [stdout] | ^^^^^^^^^ method not found in `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `histogram` found for enum `Option>` in the current scope [INFO] [stdout] --> src/potrace.rs:216:32 [INFO] [stdout] | [INFO] [stdout] 216 | self.luminanceData.histogram().auto_threshold() [INFO] [stdout] | ^^^^^^^^^ method not found in `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `copy_with_cb` found for enum `Option>` in the current scope [INFO] [stdout] --> src/potrace.rs:221:43 [INFO] [stdout] | [INFO] [stdout] 221 | let blackMap = self.luminanceData.copy_with_cb(|lum| { [INFO] [stdout] | ^^^^^^^^^^^^ method not found in `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `copy_with_cb` found for enum `Option>` in the current scope [INFO] [stdout] --> src/potrace.rs:221:43 [INFO] [stdout] | [INFO] [stdout] 221 | let blackMap = self.luminanceData.copy_with_cb(|lum| { [INFO] [stdout] | ^^^^^^^^^^^^ method not found in `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:229:68 [INFO] [stdout] | [INFO] [stdout] 229 | let mut currentPoint: Option> = Some(Point::new(0, 0)); [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | expected `f64`, found integer [INFO] [stdout] | help: use a float literal: `0.0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:229:68 [INFO] [stdout] | [INFO] [stdout] 229 | let mut currentPoint: Option> = Some(Point::new(0, 0)); [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | expected `f64`, found integer [INFO] [stdout] | help: use a float literal: `0.0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:229:71 [INFO] [stdout] | [INFO] [stdout] 229 | let mut currentPoint: Option> = Some(Point::new(0, 0)); [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | expected `f64`, found integer [INFO] [stdout] | help: use a float literal: `0.0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:229:71 [INFO] [stdout] | [INFO] [stdout] 229 | let mut currentPoint: Option> = Some(Point::new(0, 0)); [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | expected `f64`, found integer [INFO] [stdout] | help: use a float literal: `0.0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:229:57 [INFO] [stdout] | [INFO] [stdout] 229 | let mut currentPoint: Option> = Some(Point::new(0, 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Box`, found struct `Point` [INFO] [stdout] | help: store this in the heap by calling `Box::new`: `Box::new(Point::new(0, 0))` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box` [INFO] [stdout] found struct `Point` [INFO] [stdout] = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:234:15 [INFO] [stdout] | [INFO] [stdout] 234 | while (currentPoint = blackMap.find_next(currentPoint)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found `()` [INFO] [stdout] | [INFO] [stdout] help: you might have meant to compare for equality [INFO] [stdout] | [INFO] [stdout] 234 | while (currentPoint == blackMap.find_next(currentPoint)) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 148 previous errors; 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0106, E0277, E0308, E0369, E0412, E0425, E0599, E0609... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rust-potrace` [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:229:57 [INFO] [stdout] | [INFO] [stdout] 229 | let mut currentPoint: Option> = Some(Point::new(0, 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `Box`, found struct `Point` [INFO] [stdout] | help: store this in the heap by calling `Box::new`: `Box::new(Point::new(0, 0))` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box` [INFO] [stdout] found struct `Point` [INFO] [stdout] = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/potrace.rs:234:15 [INFO] [stdout] | [INFO] [stdout] 234 | while (currentPoint = blackMap.find_next(currentPoint)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found `()` [INFO] [stdout] | [INFO] [stdout] help: you might have meant to compare for equality [INFO] [stdout] | [INFO] [stdout] 234 | while (currentPoint == blackMap.find_next(currentPoint)) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 148 previous errors; 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0106, E0277, E0308, E0369, E0412, E0425, E0599, E0609... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "bc48819bcbbdccb1c6dec59d9ea5aca622e033ae25c6f352498d087a6ab54e37", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bc48819bcbbdccb1c6dec59d9ea5aca622e033ae25c6f352498d087a6ab54e37", kill_on_drop: false }` [INFO] [stdout] bc48819bcbbdccb1c6dec59d9ea5aca622e033ae25c6f352498d087a6ab54e37