[INFO] cloning repository https://github.com/AnimatedRNG/skype-vpn
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AnimatedRNG/skype-vpn" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAnimatedRNG%2Fskype-vpn", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAnimatedRNG%2Fskype-vpn'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ae1979288b3ea993399676bc672c86e25715e0b4
[INFO] checking AnimatedRNG/skype-vpn against master#3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0 for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAnimatedRNG%2Fskype-vpn" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AnimatedRNG/skype-vpn
[INFO] finished tweaking git repo https://github.com/AnimatedRNG/skype-vpn
[INFO] tweaked toml for git repo https://github.com/AnimatedRNG/skype-vpn written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AnimatedRNG/skype-vpn on toolchain 3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AnimatedRNG/skype-vpn 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" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 30 packages to latest compatible versions
[INFO] [stderr]       Adding adler32 v1.2.0
[INFO] [stderr]       Adding autocfg v1.5.0
[INFO] [stderr]       Adding bitflags v1.3.2
[INFO] [stderr]       Adding cc v1.2.30
[INFO] [stderr]       Adding color_quant v1.1.0
[INFO] [stderr]       Adding crossbeam-deque v0.8.6
[INFO] [stderr]       Adding crossbeam-epoch v0.9.18
[INFO] [stderr]       Adding crossbeam-utils v0.8.21
[INFO] [stderr]       Adding deflate v0.7.20
[INFO] [stderr]       Adding either v1.15.0
[INFO] [stderr]       Adding gif v0.10.3
[INFO] [stderr]       Adding image v0.21.3 (available: v0.25.6)
[INFO] [stderr]       Adding inflate v0.4.5
[INFO] [stderr]       Adding jpeg-decoder v0.1.22
[INFO] [stderr]       Adding lzw v0.10.0
[INFO] [stderr]       Adding num-derive v0.2.5
[INFO] [stderr]       Adding num-integer v0.1.46
[INFO] [stderr]       Adding num-iter v0.1.45
[INFO] [stderr]       Adding num-rational v0.2.4
[INFO] [stderr]       Adding num-traits v0.2.19
[INFO] [stderr]       Adding png v0.14.1
[INFO] [stderr]       Adding proc-macro2 v0.4.30
[INFO] [stderr]       Adding quote v0.6.13
[INFO] [stderr]       Adding rayon v1.10.0
[INFO] [stderr]       Adding rayon-core v1.12.1
[INFO] [stderr]       Adding scoped_threadpool v0.1.9
[INFO] [stderr]       Adding shlex v1.3.0
[INFO] [stderr]       Adding syn v0.15.44
[INFO] [stderr]       Adding tiff v0.2.2
[INFO] [stderr]       Adding unicode-xid v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3846cb32b126641c1cc37b9eccb2340660a5f0ea9e04ce38a93c80f16fb39f77
[INFO] running `Command { std: "docker" "start" "-a" "3846cb32b126641c1cc37b9eccb2340660a5f0ea9e04ce38a93c80f16fb39f77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3846cb32b126641c1cc37b9eccb2340660a5f0ea9e04ce38a93c80f16fb39f77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3846cb32b126641c1cc37b9eccb2340660a5f0ea9e04ce38a93c80f16fb39f77", kill_on_drop: false }`
[INFO] [stdout] 3846cb32b126641c1cc37b9eccb2340660a5f0ea9e04ce38a93c80f16fb39f77
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bf702907a32a9174cd4d0362e7d2b2e76cb39eff86e77c9d600ac92ba1b0967f
[INFO] running `Command { std: "docker" "start" "-a" "bf702907a32a9174cd4d0362e7d2b2e76cb39eff86e77c9d600ac92ba1b0967f", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking byteorder v1.2.6
[INFO] [stderr]    Compiling num-derive v0.2.5
[INFO] [stderr]    Compiling build_const v0.2.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking lzw v0.10.0
[INFO] [stderr]     Checking reed-solomon v0.2.1
[INFO] [stderr]     Checking inflate v0.4.5
[INFO] [stderr]     Checking gif v0.10.3
[INFO] [stderr]    Compiling crc v1.8.1
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking png v0.14.1
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking tiff v0.2.2
[INFO] [stderr]     Checking image v0.21.3
[INFO] [stderr]     Checking skype-vpn v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `server_tx`
[INFO] [stdout]    --> src/main.rs:314:10
[INFO] [stdout]     |
[INFO] [stdout] 314 |     let (server_tx, server_rx) = handle_1_1_udp(server_sock, Some(socket_addr));
[INFO] [stdout]     |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_UDP_PACKET_LEN` is never used
[INFO] [stdout]   --> src/main.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const MAX_UDP_PACKET_LEN: usize = 576;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BitString` is never used
[INFO] [stdout]  --> src/image_coder.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type BitString = [u8; FRAME_LEN];
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `release_resources` is never used
[INFO] [stdout]   --> src/image_coder.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn release_resources(buffer: *mut ImageBuffer);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode` is never used
[INFO] [stdout]   --> src/image_coder.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn encode(input: *const BitString, write_buffer: *mut ImageBuffer);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode` is never used
[INFO] [stdout]   --> src/image_coder.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn decode(output: *mut BitString, read_buffer: *const ImageBuffer);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/main.rs:104:40
[INFO] [stdout]     |
[INFO] [stdout] 104 |         raw_frame_data.extend([0u8; 2].into_iter());
[INFO] [stdout]     |                                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 104 -         raw_frame_data.extend([0u8; 2].into_iter());
[INFO] [stdout] 104 +         raw_frame_data.extend([0u8; 2].iter());
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 104 -         raw_frame_data.extend([0u8; 2].into_iter());
[INFO] [stdout] 104 +         raw_frame_data.extend(IntoIterator::into_iter([0u8; 2]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/main.rs:106:33
[INFO] [stdout]     |
[INFO] [stdout] 106 |         raw_frame_data.extend(v.into_iter());
[INFO] [stdout]     |                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 106 -         raw_frame_data.extend(v.into_iter());
[INFO] [stdout] 106 +         raw_frame_data.extend(v.iter());
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 106 -         raw_frame_data.extend(v.into_iter());
[INFO] [stdout] 106 +         raw_frame_data.extend(IntoIterator::into_iter(v));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tx`
[INFO] [stdout]    --> src/main.rs:314:10
[INFO] [stdout]     |
[INFO] [stdout] 314 |     let (server_tx, server_rx) = handle_1_1_udp(server_sock, Some(socket_addr));
[INFO] [stdout]     |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_UDP_PACKET_LEN` is never used
[INFO] [stdout]   --> src/main.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const MAX_UDP_PACKET_LEN: usize = 576;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BitString` is never used
[INFO] [stdout]  --> src/image_coder.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type BitString = [u8; FRAME_LEN];
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageBuffer` is never constructed
[INFO] [stdout]  --> src/image_coder.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct ImageBuffer;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_image_buffer` is never used
[INFO] [stdout]   --> src/image_coder.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn create_image_buffer(width: u16, height: u16, data: *mut u8) -> *mut ImageBuffer;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `release_resources` is never used
[INFO] [stdout]   --> src/image_coder.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn release_resources(buffer: *mut ImageBuffer);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_handle` is never used
[INFO] [stdout]   --> src/image_coder.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn delete_handle(buffer: *mut ImageBuffer);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode` is never used
[INFO] [stdout]   --> src/image_coder.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn encode(input: *const BitString, write_buffer: *mut ImageBuffer);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode` is never used
[INFO] [stdout]   --> src/image_coder.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn decode(output: *mut BitString, read_buffer: *const ImageBuffer);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/main.rs:104:40
[INFO] [stdout]     |
[INFO] [stdout] 104 |         raw_frame_data.extend([0u8; 2].into_iter());
[INFO] [stdout]     |                                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 104 -         raw_frame_data.extend([0u8; 2].into_iter());
[INFO] [stdout] 104 +         raw_frame_data.extend([0u8; 2].iter());
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 104 -         raw_frame_data.extend([0u8; 2].into_iter());
[INFO] [stdout] 104 +         raw_frame_data.extend(IntoIterator::into_iter([0u8; 2]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/main.rs:106:33
[INFO] [stdout]     |
[INFO] [stdout] 106 |         raw_frame_data.extend(v.into_iter());
[INFO] [stdout]     |                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 106 -         raw_frame_data.extend(v.into_iter());
[INFO] [stdout] 106 +         raw_frame_data.extend(v.iter());
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 106 -         raw_frame_data.extend(v.into_iter());
[INFO] [stdout] 106 +         raw_frame_data.extend(IntoIterator::into_iter(v));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:10:75
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn create_image_buffer(width: u16, height: u16, data: *mut u8) -> *mut ImageBuffer;
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn release_resources(buffer: *mut ImageBuffer);
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn delete_handle(buffer: *mut ImageBuffer);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:10:75
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn create_image_buffer(width: u16, height: u16, data: *mut u8) -> *mut ImageBuffer;
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn release_resources(buffer: *mut ImageBuffer);
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn delete_handle(buffer: *mut ImageBuffer);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:16:58
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn encode(input: *const BitString, write_buffer: *mut ImageBuffer);
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:18:56
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn decode(output: *mut BitString, read_buffer: *const ImageBuffer);
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:16:58
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn encode(input: *const BitString, write_buffer: *mut ImageBuffer);
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `ImageBuffer`, which is not FFI-safe
[INFO] [stdout]   --> src/image_coder.rs:18:56
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn decode(output: *mut BitString, read_buffer: *const ImageBuffer);
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/image_coder.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct ImageBuffer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.53s
[INFO] running `Command { std: "docker" "inspect" "bf702907a32a9174cd4d0362e7d2b2e76cb39eff86e77c9d600ac92ba1b0967f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bf702907a32a9174cd4d0362e7d2b2e76cb39eff86e77c9d600ac92ba1b0967f", kill_on_drop: false }`
[INFO] [stdout] bf702907a32a9174cd4d0362e7d2b2e76cb39eff86e77c9d600ac92ba1b0967f
