[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] testing Saeris/rust-potrace against beta-2020-10-09 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSaeris%2Frust-potrace" "/workspace/builds/worker-13/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-13/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Saeris/rust-potrace on toolchain beta-2020-10-09
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "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-13/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" "+beta-2020-10-09" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded async-mutex v1.3.0
[INFO] [stderr]   Downloaded cargo-husky v1.5.0
[INFO] [stderr]   Downloaded cached_proc_macro v0.4.0
[INFO] [stderr]   Downloaded cached v0.19.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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" "+beta-2020-10-09" "metadata" "--no-deps" "--format-version=1", 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] 89c72bf9147a73ef075a7d621c83e3f5a35f14be1b82b973539b743e18e15c88
[INFO] running `Command { std: "docker" "start" "-a" "89c72bf9147a73ef075a7d621c83e3f5a35f14be1b82b973539b743e18e15c88", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "89c72bf9147a73ef075a7d621c83e3f5a35f14be1b82b973539b743e18e15c88", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "89c72bf9147a73ef075a7d621c83e3f5a35f14be1b82b973539b743e18e15c88", kill_on_drop: false }`
[INFO] [stdout] 89c72bf9147a73ef075a7d621c83e3f5a35f14be1b82b973539b743e18e15c88
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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=warn" "-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" "+beta-2020-10-09" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d991b9d9b54f9b9f173a5d90bd528d043cb444ee5a0e0b8e38f6aab9233b4953
[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" "d991b9d9b54f9b9f173a5d90bd528d043cb444ee5a0e0b8e38f6aab9233b4953", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.41
[INFO] [stderr]    Compiling rayon-core v1.8.1
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.68
[INFO] [stderr]    Compiling adler32 v1.2.0
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling strsim v0.9.3
[INFO] [stderr]    Compiling bumpalo v3.4.0
[INFO] [stderr]    Compiling event-listener v2.4.0
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling wasm-bindgen v0.2.68
[INFO] [stderr]    Compiling bytemuck v1.4.1
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling num-bigint v0.3.0
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]    Compiling rayon v1.4.0
[INFO] [stderr]    Compiling num-rational v0.3.0
[INFO] [stderr]    Compiling miniz_oxide v0.3.7
[INFO] [stderr]    Compiling async-mutex v1.3.0
[INFO] [stderr]    Compiling deflate v0.8.6
[INFO] [stderr]    Compiling tiff v0.5.0
[INFO] [stderr]    Compiling png v0.16.7
[INFO] [stderr]    Compiling crossbeam-deque v0.7.3
[INFO] [stderr]    Compiling num-complex v0.3.0
[INFO] [stderr]    Compiling jpeg-decoder v0.1.20
[INFO] [stderr]    Compiling num v0.3.0
[INFO] [stderr]    Compiling 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 wasm-bindgen-macro v0.2.68
[INFO] [stderr]    Compiling darling_macro v0.10.2
[INFO] [stderr]    Compiling darling v0.10.2
[INFO] [stderr]    Compiling cached_proc_macro v0.4.0
[INFO] [stderr]    Compiling cached v0.19.0
[INFO] [stderr]    Compiling 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[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 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: 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<Box<&str>>, // 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<Box<PotraceOptions>>,
[INFO] [stdout] 27 |     steps: Option<Box<Vec<u8>>>, // typeof STEPS_AUTO | number | number[]
[INFO] [stdout] 28 |     fillStrategy: Option<Box<&'a str>>, // 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<Box<PotraceOptions>>,
[INFO] [stdout] 27 |     steps: Option<Box<Vec<u8>>>, // typeof STEPS_AUTO | number | number[]
[INFO] [stdout] 28 |     fillStrategy: Option<Box<&str>>, // 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<Box<i32>>,
[INFO] [stdout] 55 |     threshold: Option<Box<i32>>,
[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<Box<&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<Box<i32>>,
[INFO] [stdout] 55 |     threshold: Option<Box<i32>>,
[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<Box<i32>>,
[INFO] [stdout] 55 |     threshold: Option<Box<i32>>,
[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<PotraceOptions>`
[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<Vec<u8>>`
[INFO] [stdout]               found struct `Vec<i32>`
[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<Box<PotraceOptions>>) -> 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<i32>`
[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<Vec<u8>>`
[INFO] [stdout]               found struct `Vec<i32>`
[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: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<Box<_>>`
[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<Box<PotraceOptions>>) -> 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<Box<_>>`
[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<Box<&'static str>>`
[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<PotraceOptions>`
[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<Box<_>>`
[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<Box<&'static str>>`
[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<Box<bitmap::Bitmap>>`
[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<Box<bitmap::Bitmap>>`
[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<Box<bitmap::Bitmap>>`
[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<Box<bitmap::Bitmap>>`
[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<ColorStop>`
[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<ColorStop>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `map` found for struct `Vec<ColorStop>` 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<ColorStop>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the method `map` exists but the following trait bounds were not satisfied:
[INFO] [stdout]             `Vec<ColorStop>: Iterator`
[INFO] [stdout]             which is required by `&mut Vec<ColorStop>: 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<Box<bool>>) -> 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<u8>` 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<u8>`
[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: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<u8>`
[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<u8>` 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<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `length` on type `Vec<u8>`
[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<i32>`
[INFO] [stdout]                found struct `Vec<u8>`
[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<Box<bool>>`
[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<Box<i32>>`
[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<u8>` 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<u8>`
[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<u8>`
[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<i32>`
[INFO] [stdout]                found struct `Vec<u8>`
[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<Box<bool>>) -> 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<u8>` 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<i32>` 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<i32>`
[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<Box<i32>>`
[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<Box<i32>>`
[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<Box<i32>>`
[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<Box<i32>>`
[INFO] [stdout]                found type `bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `length` on type `Vec<ColorStop>`
[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<ColorStop>) {
[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<ColorStop>`
[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<Box<&str>>`
[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<i32>` 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<i32>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the method `map` exists but the following trait bounds were not satisfied:
[INFO] [stdout]             `Vec<i32>: Iterator`
[INFO] [stdout]             which is required by `&mut Vec<i32>: 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<i32>`
[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<i32>`
[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<Box<&str>>`
[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<Box<&str>>`
[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<Box<&str>>`
[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<Box<&str>>`
[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<Box<&str>>`
[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<Box<&str>>`
[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<Box<&str>>`
[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<Box<&str>>`
[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]               <! as Ord>
[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]: `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<bool>`
[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<bool>`
[INFO] [stdout]                found type `bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `length` on type `Option<Box<Vec<u8>>>`
[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<Box<Vec<u8>>>`
[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<Box<i32>>`
[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<Box<Vec<u8>>>`
[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<u8>` 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<u8>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba<u8>`
[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<u8>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba<u8>`
[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<u8>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `{integer}` from `Rgba<u8>`
[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<u8>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `width` on type `Option<Box<bitmap::Bitmap>>`
[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<Box<bitmap::Bitmap>>`
[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<Box<String>>,
[INFO] [stdout] 176 | |         x: Option<Box<i32>>,
[INFO] [stdout] 177 | |         y: Option<Box<i32>>,
[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<Box<usize>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `width` on type `Option<Box<bitmap::Bitmap>>`
[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<Box<usize>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `height` on type `Option<Box<bitmap::Bitmap>>`
[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<Box<usize>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `width` on type `Option<Box<bitmap::Bitmap>>`
[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<Box<i32>>`
[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<Box<usize>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `height` on type `Option<Box<bitmap::Bitmap>>`
[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<Box<i32>>`
[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[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<Box<String>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `map` found for struct `Vec<types::path::Path>` 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<types::path::Path>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the method `map` exists but the following trait bounds were not satisfied:
[INFO] [stdout]             `Vec<types::path::Path>: Iterator`
[INFO] [stdout]             which is required by `&mut Vec<types::path::Path>: 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<Box<u8>>`
[INFO] [stdout]                found type `i32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `histogram` found for enum `Option<Box<bitmap::Bitmap>>` 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<Box<bitmap::Bitmap>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `copy_with_cb` found for enum `Option<Box<bitmap::Bitmap>>` 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<Box<bitmap::Bitmap>>`
[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<Box<Point>> = 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<Box<Point>> = 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<Box<Point>> = 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<Point>`
[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] running `Command { std: "docker" "inspect" "d991b9d9b54f9b9f173a5d90bd528d043cb444ee5a0e0b8e38f6aab9233b4953", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d991b9d9b54f9b9f173a5d90bd528d043cb444ee5a0e0b8e38f6aab9233b4953", kill_on_drop: false }`
[INFO] [stdout] d991b9d9b54f9b9f173a5d90bd528d043cb444ee5a0e0b8e38f6aab9233b4953
