[INFO] cloning repository https://github.com/Khushiyant/kerf
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Khushiyant/kerf" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKhushiyant%2Fkerf", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKhushiyant%2Fkerf'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 980061cd6cbb6266af498aa0110d325ddadbea57
[INFO] checking Khushiyant/kerf against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKhushiyant%2Fkerf" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/Khushiyant/kerf
[INFO] finished tweaking git repo https://github.com/Khushiyant/kerf
[INFO] tweaked toml for git repo https://github.com/Khushiyant/kerf written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Khushiyant/kerf on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Khushiyant/kerf already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> crates/kerf-core/Cargo.toml:9:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 9 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `kerf-core` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> crates/kerf-cli/Cargo.toml:9:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 9 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `kerf-cli` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa
[INFO] running `Command { std: "docker" "start" "ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> crates/kerf-core/Cargo.toml:9:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 9 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `kerf-core` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> crates/kerf-cli/Cargo.toml:9:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 9 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `kerf-cli` (manifest) generated 1 warning
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking memchr v2.8.2
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]    Compiling kerf-py v0.10.0 (/opt/rustwide/workdir/crates/kerf-py)
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking unindent v0.2.4
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling pyo3-build-config v0.23.5
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]    Compiling pyo3-macros-backend v0.23.5
[INFO] [stderr]    Compiling pyo3-ffi v0.23.5
[INFO] [stderr]    Compiling pyo3 v0.23.5
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.52
[INFO] [stderr]    Compiling pyo3-macros v0.23.5
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking kerf-core v0.10.0 (/opt/rustwide/workdir/crates/kerf-core)
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking kerf-cli v0.10.0 (/opt/rustwide/workdir/crates/kerf-cli)
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/handle.rs:50:64
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn from_json(lo_program_json: &str, resolution_um: i64) -> PyResult<Self> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/handle.rs:71:26
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn to_json(&self) -> PyResult<String> {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/handle.rs:97:47
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn toolpath_count(&self, layer: usize) -> PyResult<usize> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn legal_actions(&self) -> PyResult<String> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:117:35
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn action(&self, i: usize) -> PyResult<String> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:128:47
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn apply(&mut self, action_json: &str) -> PyResult<Vec<usize>> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:135:44
[INFO] [stdout]     |
[INFO] [stdout] 135 |     fn apply_index(&mut self, i: usize) -> PyResult<Vec<usize>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:146:47
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn apply_sampled(&mut self, seed: u64) -> PyResult<Vec<usize>> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:168:32
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn occupancy(&mut self) -> PyResult<String> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:174:24
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn stats(&self) -> PyResult<String> {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:179:29
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn flow_stats(&self) -> PyResult<String> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:213:59
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn print_time_s(&self, profile_json: Option<&str>) -> PyResult<f64> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:220:57
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn print_time(&self, profile_json: Option<&str>) -> PyResult<String> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:227:79
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn printability(&self, profile_json: Option<&str>, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:245:65
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn graded_to(&self, other: &Program, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:275:47
[INFO] [stdout]     |
[INFO] [stdout] 275 |     fn occupancy_grid(&self, layer: usize) -> PyResult<(usize, usize, i64, i64, Vec<u8>)> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:284:31
[INFO] [stdout]     |
[INFO] [stdout] 284 |     fn travel_graph(&self) -> PyResult<String> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/lib.rs:90:47
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn program_to_gcode(hi_program_json: &str) -> PyResult<String> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/lib.rs:99:44
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn lower_to_json(hi_program_json: &str) -> PyResult<String> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:108:76
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn check_self_lowering_sound(hi_program_json: &str, resolution_um: i64) -> PyResult<bool> {
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:117:26
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn demo_square_json() -> PyResult<String> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn parse_gcode(gcode: &str) -> PyResult<(String, String)> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:164:53
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn verify_gcode(gcode: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:173:56
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn diff_gcode(a: &str, b: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:184:67
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn verify_roundtrip(lo_program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:195:69
[INFO] [stdout]     |
[INFO] [stdout] 195 | fn diff_programs(a_json: &str, b_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:208:57
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn occupancy(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:217:53
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn rotate_z(lo_program_json: &str, radians: f64) -> PyResult<String> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:231:6
[INFO] [stdout]     |
[INFO] [stdout] 231 | ) -> PyResult<String> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:239:34
[INFO] [stdout]     |
[INFO] [stdout] 239 | fn rot_x90(voxels_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:246:34
[INFO] [stdout]     |
[INFO] [stdout] 246 | fn rot_y90(voxels_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:254:34
[INFO] [stdout]     |
[INFO] [stdout] 254 | fn rot_z90(voxels_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:265:68
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn rotate_bounds(voxels_json: &str, radians: f64, axis_x: bool) -> PyResult<(String, String)> {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:283:6
[INFO] [stdout]     |
[INFO] [stdout] 283 | ) -> PyResult<String> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:300:41
[INFO] [stdout]     |
[INFO] [stdout] 300 | fn program_stats(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:309:61
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn deposit_stats(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:318:65
[INFO] [stdout]     |
[INFO] [stdout] 318 | fn travel_collisions(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:329:67
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn graded_diff(a_json: &str, b_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:341:63
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn graded_diff_gcode(a: &str, b: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:355:6
[INFO] [stdout]     |
[INFO] [stdout] 355 | ) -> PyResult<String> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:365:59
[INFO] [stdout]     |
[INFO] [stdout] 365 | fn denote_flow(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:383:38
[INFO] [stdout]     |
[INFO] [stdout] 383 | fn flow_stats(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:391:66
[INFO] [stdout]     |
[INFO] [stdout] 391 | fn e_conserved(a_json: &str, b_json: &str, tolerance_mm: f64) -> PyResult<bool> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:401:42
[INFO] [stdout]     |
[INFO] [stdout] 401 | fn canonical_hash(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:411:68
[INFO] [stdout]     |
[INFO] [stdout] 411 | fn material_fingerprint(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:421:41
[INFO] [stdout]     |
[INFO] [stdout] 421 | fn legal_actions(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:431:59
[INFO] [stdout]     |
[INFO] [stdout] 431 | fn apply_action(program_json: &str, action_json: &str) -> PyResult<(String, Vec<usize>)> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:446:66
[INFO] [stdout]     |
[INFO] [stdout] 446 | fn print_time(program_json: &str, profile_json: Option<&str>) -> PyResult<String> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:462:6
[INFO] [stdout]     |
[INFO] [stdout] 462 | ) -> PyResult<String> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:474:33
[INFO] [stdout]     |
[INFO] [stdout] 474 | fn default_machine_profile() -> PyResult<String> {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:486:6
[INFO] [stdout]     |
[INFO] [stdout] 486 | ) -> PyResult<bool> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:504:6
[INFO] [stdout]     |
[INFO] [stdout] 504 | ) -> PyResult<Vec<bool>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:517:42
[INFO] [stdout]     |
[INFO] [stdout] 517 | fn feature_matrix(program_json: &str) -> PyResult<(usize, usize, Vec<f64>)> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:529:6
[INFO] [stdout]     |
[INFO] [stdout] 529 | ) -> PyResult<(usize, usize, i64, i64, Vec<u8>)> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:540:40
[INFO] [stdout]     |
[INFO] [stdout] 540 | fn travel_graph(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:547:47
[INFO] [stdout]     |
[INFO] [stdout] 547 | fn export_versioned(lo_program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:555:46
[INFO] [stdout]     |
[INFO] [stdout] 555 | fn import_versioned(versioned_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kerf-py` (lib test) due to 57 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/handle.rs:50:64
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn from_json(lo_program_json: &str, resolution_um: i64) -> PyResult<Self> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/handle.rs:71:26
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn to_json(&self) -> PyResult<String> {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/handle.rs:97:47
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn toolpath_count(&self, layer: usize) -> PyResult<usize> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn legal_actions(&self) -> PyResult<String> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:117:35
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn action(&self, i: usize) -> PyResult<String> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:128:47
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn apply(&mut self, action_json: &str) -> PyResult<Vec<usize>> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:135:44
[INFO] [stdout]     |
[INFO] [stdout] 135 |     fn apply_index(&mut self, i: usize) -> PyResult<Vec<usize>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:146:47
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn apply_sampled(&mut self, seed: u64) -> PyResult<Vec<usize>> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:168:32
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn occupancy(&mut self) -> PyResult<String> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:174:24
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn stats(&self) -> PyResult<String> {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:179:29
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn flow_stats(&self) -> PyResult<String> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:213:59
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn print_time_s(&self, profile_json: Option<&str>) -> PyResult<f64> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:220:57
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn print_time(&self, profile_json: Option<&str>) -> PyResult<String> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:227:79
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn printability(&self, profile_json: Option<&str>, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:245:65
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn graded_to(&self, other: &Program, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:275:47
[INFO] [stdout]     |
[INFO] [stdout] 275 |     fn occupancy_grid(&self, layer: usize) -> PyResult<(usize, usize, i64, i64, Vec<u8>)> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/handle.rs:284:31
[INFO] [stdout]     |
[INFO] [stdout] 284 |     fn travel_graph(&self) -> PyResult<String> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/lib.rs:90:47
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn program_to_gcode(hi_program_json: &str) -> PyResult<String> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/kerf-py/src/lib.rs:99:44
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn lower_to_json(hi_program_json: &str) -> PyResult<String> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:108:76
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn check_self_lowering_sound(hi_program_json: &str, resolution_um: i64) -> PyResult<bool> {
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:117:26
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn demo_square_json() -> PyResult<String> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn parse_gcode(gcode: &str) -> PyResult<(String, String)> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:164:53
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn verify_gcode(gcode: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:173:56
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn diff_gcode(a: &str, b: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:184:67
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn verify_roundtrip(lo_program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:195:69
[INFO] [stdout]     |
[INFO] [stdout] 195 | fn diff_programs(a_json: &str, b_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:208:57
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn occupancy(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:217:53
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn rotate_z(lo_program_json: &str, radians: f64) -> PyResult<String> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:231:6
[INFO] [stdout]     |
[INFO] [stdout] 231 | ) -> PyResult<String> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:239:34
[INFO] [stdout]     |
[INFO] [stdout] 239 | fn rot_x90(voxels_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:246:34
[INFO] [stdout]     |
[INFO] [stdout] 246 | fn rot_y90(voxels_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:254:34
[INFO] [stdout]     |
[INFO] [stdout] 254 | fn rot_z90(voxels_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:265:68
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn rotate_bounds(voxels_json: &str, radians: f64, axis_x: bool) -> PyResult<(String, String)> {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:283:6
[INFO] [stdout]     |
[INFO] [stdout] 283 | ) -> PyResult<String> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:300:41
[INFO] [stdout]     |
[INFO] [stdout] 300 | fn program_stats(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:309:61
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn deposit_stats(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:318:65
[INFO] [stdout]     |
[INFO] [stdout] 318 | fn travel_collisions(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:329:67
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn graded_diff(a_json: &str, b_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:341:63
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn graded_diff_gcode(a: &str, b: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:355:6
[INFO] [stdout]     |
[INFO] [stdout] 355 | ) -> PyResult<String> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:365:59
[INFO] [stdout]     |
[INFO] [stdout] 365 | fn denote_flow(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:383:38
[INFO] [stdout]     |
[INFO] [stdout] 383 | fn flow_stats(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:391:66
[INFO] [stdout]     |
[INFO] [stdout] 391 | fn e_conserved(a_json: &str, b_json: &str, tolerance_mm: f64) -> PyResult<bool> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:401:42
[INFO] [stdout]     |
[INFO] [stdout] 401 | fn canonical_hash(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:411:68
[INFO] [stdout]     |
[INFO] [stdout] 411 | fn material_fingerprint(program_json: &str, resolution_um: i64) -> PyResult<String> {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:421:41
[INFO] [stdout]     |
[INFO] [stdout] 421 | fn legal_actions(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:431:59
[INFO] [stdout]     |
[INFO] [stdout] 431 | fn apply_action(program_json: &str, action_json: &str) -> PyResult<(String, Vec<usize>)> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:446:66
[INFO] [stdout]     |
[INFO] [stdout] 446 | fn print_time(program_json: &str, profile_json: Option<&str>) -> PyResult<String> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:462:6
[INFO] [stdout]     |
[INFO] [stdout] 462 | ) -> PyResult<String> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:474:33
[INFO] [stdout]     |
[INFO] [stdout] 474 | fn default_machine_profile() -> PyResult<String> {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:486:6
[INFO] [stdout]     |
[INFO] [stdout] 486 | ) -> PyResult<bool> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:504:6
[INFO] [stdout]     |
[INFO] [stdout] 504 | ) -> PyResult<Vec<bool>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:517:42
[INFO] [stdout]     |
[INFO] [stdout] 517 | fn feature_matrix(program_json: &str) -> PyResult<(usize, usize, Vec<f64>)> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:529:6
[INFO] [stdout]     |
[INFO] [stdout] 529 | ) -> PyResult<(usize, usize, i64, i64, Vec<u8>)> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:540:40
[INFO] [stdout]     |
[INFO] [stdout] 540 | fn travel_graph(program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:547:47
[INFO] [stdout]     |
[INFO] [stdout] 547 | fn export_versioned(lo_program_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/kerf-py/src/lib.rs:555:46
[INFO] [stdout]     |
[INFO] [stdout] 555 | fn import_versioned(versioned_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kerf-py` (lib) due to 57 previous errors
[INFO] running `Command { std: "docker" "inspect" "ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa", kill_on_drop: false }`
[INFO] [stdout] ccc6bd134296177d97f5f9cadd365bba1f35948e360cec7d9a6adf5a3a8229aa
