[INFO] cloning repository https://github.com/Skeletonxf/hnefatafl
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Skeletonxf/hnefatafl" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkeletonxf%2Fhnefatafl", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkeletonxf%2Fhnefatafl'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c31fe02885d3ff5c8f41adab85f37d105dc48ae5
[INFO] checking Skeletonxf/hnefatafl against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkeletonxf%2Fhnefatafl" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Skeletonxf/hnefatafl
[INFO] finished tweaking git repo https://github.com/Skeletonxf/hnefatafl
[INFO] tweaked toml for git repo https://github.com/Skeletonxf/hnefatafl written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Skeletonxf/hnefatafl on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Skeletonxf/hnefatafl 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded camino v1.2.1
[INFO] [stderr]   Downloaded uniffi v0.29.4
[INFO] [stderr]   Downloaded scroll_derive v0.12.1
[INFO] [stderr]   Downloaded uniffi_build v0.29.4
[INFO] [stderr]   Downloaded uniffi_meta v0.29.4
[INFO] [stderr]   Downloaded fd-lock v3.0.13
[INFO] [stderr]   Downloaded uniffi_pipeline v0.29.4
[INFO] [stderr]   Downloaded weedle2 v5.0.0
[INFO] [stderr]   Downloaded uniffi_internal_macros v0.29.4
[INFO] [stderr]   Downloaded uniffi_udl v0.29.4
[INFO] [stderr]   Downloaded askama v0.13.1
[INFO] [stderr]   Downloaded askama_parser v0.13.0
[INFO] [stderr]   Downloaded askama_derive v0.13.1
[INFO] [stderr]   Downloaded rustyline v9.1.2
[INFO] [stderr]   Downloaded uniffi_core v0.29.4
[INFO] [stderr]   Downloaded uniffi_macros v0.29.4
[INFO] [stderr]   Downloaded goblin v0.8.2
[INFO] [stderr]   Downloaded easy-ml v2.0.0
[INFO] [stderr]   Downloaded uniffi_bindgen v0.29.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6874b542150c84afa2cb83427086de4841252f1a5016eb7a5d804a62cb09af54
[INFO] running `Command { std: "docker" "start" "-a" "6874b542150c84afa2cb83427086de4841252f1a5016eb7a5d804a62cb09af54", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6874b542150c84afa2cb83427086de4841252f1a5016eb7a5d804a62cb09af54", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6874b542150c84afa2cb83427086de4841252f1a5016eb7a5d804a62cb09af54", kill_on_drop: false }`
[INFO] [stdout] 6874b542150c84afa2cb83427086de4841252f1a5016eb7a5d804a62cb09af54
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 92b2de2ec5992b08e801ffae1eb5ec7915178e2a06ebabaa7bb634cfd081f507
[INFO] running `Command { std: "docker" "start" "-a" "92b2de2ec5992b08e801ffae1eb5ec7915178e2a06ebabaa7bb634cfd081f507", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling camino v1.2.1
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling fs-err v2.11.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]     Checking heck v0.5.0
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling plain v0.2.3
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling os_str_bytes v6.6.1
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling cbindgen v0.24.5
[INFO] [stderr]    Compiling clap_builder v4.5.48
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling uniffi_core v0.29.4
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]    Compiling weedle2 v5.0.0
[INFO] [stderr]     Checking winnow v0.5.40
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking semver v1.0.27
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling clap v3.2.25
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking dirs-next v2.0.0
[INFO] [stderr]     Checking nix v0.23.2
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking rustc-demangle v0.1.26
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking easy-ml v2.0.0
[INFO] [stderr]     Checking fd-lock v3.0.13
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking widestring v1.2.0
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling uniffi_internal_macros v0.29.4
[INFO] [stderr]    Compiling scroll_derive v0.12.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling scroll v0.12.0
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling goblin v0.8.2
[INFO] [stderr]    Compiling uniffi_pipeline v0.29.4
[INFO] [stderr]     Checking uniffi_meta v0.29.4
[INFO] [stderr]    Compiling clap v4.5.48
[INFO] [stderr]    Compiling uniffi_udl v0.29.4
[INFO] [stderr]     Checking rustyline v9.1.2
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling askama_parser v0.13.0
[INFO] [stderr]    Compiling basic-toml v0.1.10
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling cargo-platform v0.1.9
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking cargo_metadata v0.19.2
[INFO] [stderr]     Checking toml_edit v0.19.15
[INFO] [stderr]    Compiling uniffi_macros v0.29.4
[INFO] [stderr]     Checking toml v0.7.8
[INFO] [stderr]    Compiling askama_derive v0.13.1
[INFO] [stderr]    Compiling askama v0.13.1
[INFO] [stderr]     Checking uniffi_bindgen v0.29.4
[INFO] [stderr]     Checking uniffi_build v0.29.4
[INFO] [stderr]     Checking uniffi v0.29.4
[INFO] [stderr]    Compiling hnefatafl v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub unsafe extern fn config_handle_new(
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub unsafe extern fn config_handle_default() -> *mut ConfigHandle {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub unsafe extern fn config_handle_destroy(handle: *mut ConfigHandle) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub extern fn config_handle_get_string_key(
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub unsafe extern fn config_handle_set_string_key(
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/config.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub extern fn config_handle_get_file(
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/config.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub unsafe extern fn result_config_handle_get_type(result: *mut FFIResult<*const ConfigHandle, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/config.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub unsafe extern fn result_config_handle_get_ok(result: *mut FFIResult<*const ConfigHandle, *mut FFIError>) -> *const ConfigHandle {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/config.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub unsafe extern fn result_config_handle_get_error(result: *mut FFIResult<*const ConfigHandle, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/results.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub unsafe extern fn error_consume_info(
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/results.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub unsafe extern fn result_void_get_type(result: *mut FFIResult<(), *mut FFIError>) -> FFIResultType {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/results.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub unsafe extern fn result_void_get_ok(result: *mut FFIResult<(), *mut FFIError>) -> () {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/results.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub unsafe extern fn result_void_get_error(result: *mut FFIResult<(), *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub extern fn tile_array_get(array: *const TileArray, index: usize) -> Tile {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub extern fn tile_array_length(array: *const TileArray) -> usize {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub unsafe extern fn tile_array_destroy(array: *mut TileArray) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub unsafe extern fn result_tile_array_error_get_type(result: *mut FFIResult<*mut TileArray, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub unsafe extern fn result_tile_array_error_get_ok(result: *mut FFIResult<*mut TileArray, *mut FFIError>) -> *mut TileArray {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub unsafe extern fn result_tile_array_error_get_error(result: *mut FFIResult<*mut TileArray, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub extern fn play_array_get(array: *const PlayArray, index: usize) -> FlatPlay {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub extern fn play_array_length(array: *const PlayArray) -> usize {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub unsafe extern fn play_array_destroy(array: *mut PlayArray) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub unsafe extern fn result_play_array_get_type(result: *mut FFIResult<*mut PlayArray, ()>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub unsafe extern fn result_play_array_get_ok(result: *mut FFIResult<*mut PlayArray, ()>) -> *mut PlayArray {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub unsafe extern fn result_play_array_get_error(result: *mut FFIResult<*mut PlayArray, ()>) -> () {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub unsafe extern fn result_winner_get_type(result: *mut FFIResult<Winner, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub unsafe extern fn result_winner_get_ok(result: *mut FFIResult<Winner, *mut FFIError>) -> Winner {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub unsafe extern fn result_winner_get_error(result: *mut FFIResult<Winner, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub unsafe extern fn result_player_get_type(result: *mut FFIResult<TurnPlayer, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub unsafe extern fn config_handle_new(
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub unsafe extern fn config_handle_default() -> *mut ConfigHandle {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub unsafe extern fn config_handle_destroy(handle: *mut ConfigHandle) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub extern fn config_handle_get_string_key(
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/config.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub unsafe extern fn config_handle_set_string_key(
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/config.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub extern fn config_handle_get_file(
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/config.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub unsafe extern fn result_config_handle_get_type(result: *mut FFIResult<*const ConfigHandle, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/config.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub unsafe extern fn result_config_handle_get_ok(result: *mut FFIResult<*const ConfigHandle, *mut FFIError>) -> *const ConfigHandle {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/config.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub unsafe extern fn result_config_handle_get_error(result: *mut FFIResult<*const ConfigHandle, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/results.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub unsafe extern fn error_consume_info(
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub unsafe extern fn result_player_get_ok(result: *mut FFIResult<TurnPlayer, *mut FFIError>) -> TurnPlayer {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/results.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub unsafe extern fn result_void_get_type(result: *mut FFIResult<(), *mut FFIError>) -> FFIResultType {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/results.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub unsafe extern fn result_void_get_ok(result: *mut FFIResult<(), *mut FFIError>) -> () {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/results.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub unsafe extern fn result_void_get_error(result: *mut FFIResult<(), *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub extern fn tile_array_get(array: *const TileArray, index: usize) -> Tile {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub extern fn tile_array_length(array: *const TileArray) -> usize {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub unsafe extern fn tile_array_destroy(array: *mut TileArray) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub unsafe extern fn result_tile_array_error_get_type(result: *mut FFIResult<*mut TileArray, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub unsafe extern fn result_tile_array_error_get_ok(result: *mut FFIResult<*mut TileArray, *mut FFIError>) -> *mut TileArray {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/tile_array.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub unsafe extern fn result_tile_array_error_get_error(result: *mut FFIResult<*mut TileArray, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub extern fn play_array_get(array: *const PlayArray, index: usize) -> FlatPlay {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub extern fn play_array_length(array: *const PlayArray) -> usize {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub unsafe extern fn play_array_destroy(array: *mut PlayArray) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub unsafe extern fn result_play_array_get_type(result: *mut FFIResult<*mut PlayArray, ()>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub unsafe extern fn result_play_array_get_ok(result: *mut FFIResult<*mut PlayArray, ()>) -> *mut PlayArray {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/play_array.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub unsafe extern fn result_play_array_get_error(result: *mut FFIResult<*mut PlayArray, ()>) -> () {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub unsafe extern fn result_winner_get_type(result: *mut FFIResult<Winner, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub unsafe extern fn result_winner_get_ok(result: *mut FFIResult<Winner, *mut FFIError>) -> Winner {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub unsafe extern fn result_winner_get_error(result: *mut FFIResult<Winner, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub unsafe extern fn result_player_get_type(result: *mut FFIResult<TurnPlayer, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub unsafe extern fn result_player_get_ok(result: *mut FFIResult<TurnPlayer, *mut FFIError>) -> TurnPlayer {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub unsafe extern fn result_player_get_error(result: *mut FFIResult<TurnPlayer, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub unsafe extern fn utf16_destroy(handle: *mut Vec<u16>) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub extern fn utf16_array_length(array: *const UTF16Array) -> usize {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub unsafe extern fn utf16_array_copy_to(array: *const UTF16Array, buffer: *mut u16) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub unsafe extern fn utf16_array_destroy(array: *mut UTF16Array) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub unsafe extern fn result_utf16_array_get_type(result: *mut FFIResult<*mut UTF16Array, ()>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub unsafe extern fn result_utf16_array_get_ok(result: *mut FFIResult<*mut UTF16Array, ()>) -> *mut UTF16Array {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub unsafe extern fn result_utf16_array_get_error(result: *mut FFIResult<*mut UTF16Array, ()>) -> () {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub unsafe extern fn result_utf16_array_error_get_type(result: *mut FFIResult<*mut UTF16Array, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/strings.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub unsafe extern fn result_utf16_array_error_get_ok(result: *mut FFIResult<*mut UTF16Array, *mut FFIError>) -> *mut UTF16Array {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/strings.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub unsafe extern fn result_utf16_array_error_get_error(result: *mut FFIResult<*mut UTF16Array, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub extern fn game_state_handle_new() -> *mut GameStateHandle {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub unsafe extern fn game_state_handle_destroy(handle: *mut GameStateHandle) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub extern fn game_state_handle_debug(handle: *const GameStateHandle) {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub extern fn game_state_handle_tiles(
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub extern fn game_state_handle_grid_size(handle: *const GameStateHandle) -> u8 {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub extern fn game_state_available_plays(handle: *const GameStateHandle) -> *mut FFIResult<*mut PlayArray, ()> {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub extern fn game_state_handle_make_play(
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub extern fn game_state_handle_make_bot_play(
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub extern fn game_state_handle_winner(handle: *const GameStateHandle) -> *mut FFIResult<Winner, *mut FFIError> {
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub extern fn game_state_current_player(handle: *const GameStateHandle) -> *mut FFIResult<TurnPlayer, *mut FFIError> {
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub extern fn game_state_handle_turn_count(handle: *const GameStateHandle) -> *mut FFIResult<u32, *mut FFIError> {
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub extern fn game_state_handle_dead(handle: *const GameStateHandle) -> *mut FFIResult<*mut TileArray, *mut FFIError> {
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub unsafe extern fn result_game_state_update_get_type(result: *mut FFIResult<GameStateUpdate, ()>) -> FFIResultType {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub unsafe extern fn result_game_state_update_get_ok(result: *mut FFIResult<GameStateUpdate, ()>) -> GameStateUpdate {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub unsafe extern fn result_game_state_update_get_error(result: *mut FFIResult<GameStateUpdate, ()>) -> () {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub unsafe extern fn result_u32_get_type(result: *mut FFIResult<u32, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub unsafe extern fn result_u32_get_ok(result: *mut FFIResult<u32, *mut FFIError>) -> u32 {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub unsafe extern fn result_u32_get_error(result: *mut FFIResult<u32, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/player.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub unsafe extern fn result_player_get_error(result: *mut FFIResult<TurnPlayer, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub unsafe extern fn utf16_destroy(handle: *mut Vec<u16>) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub extern fn utf16_array_length(array: *const UTF16Array) -> usize {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub unsafe extern fn utf16_array_copy_to(array: *const UTF16Array, buffer: *mut u16) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub unsafe extern fn utf16_array_destroy(array: *mut UTF16Array) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub unsafe extern fn result_utf16_array_get_type(result: *mut FFIResult<*mut UTF16Array, ()>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub unsafe extern fn result_utf16_array_get_ok(result: *mut FFIResult<*mut UTF16Array, ()>) -> *mut UTF16Array {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub unsafe extern fn result_utf16_array_get_error(result: *mut FFIResult<*mut UTF16Array, ()>) -> () {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/strings.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub unsafe extern fn result_utf16_array_error_get_type(result: *mut FFIResult<*mut UTF16Array, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/strings.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub unsafe extern fn result_utf16_array_error_get_ok(result: *mut FFIResult<*mut UTF16Array, *mut FFIError>) -> *mut UTF16Array {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/strings.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub unsafe extern fn result_utf16_array_error_get_error(result: *mut FFIResult<*mut UTF16Array, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub extern fn game_state_handle_new() -> *mut GameStateHandle {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub unsafe extern fn game_state_handle_destroy(handle: *mut GameStateHandle) {
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub extern fn game_state_handle_debug(handle: *const GameStateHandle) {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub extern fn game_state_handle_tiles(
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub extern fn game_state_handle_grid_size(handle: *const GameStateHandle) -> u8 {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub extern fn game_state_available_plays(handle: *const GameStateHandle) -> *mut FFIResult<*mut PlayArray, ()> {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub extern fn game_state_handle_make_play(
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub extern fn game_state_handle_make_bot_play(
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub extern fn game_state_handle_winner(handle: *const GameStateHandle) -> *mut FFIResult<Winner, *mut FFIError> {
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub extern fn game_state_current_player(handle: *const GameStateHandle) -> *mut FFIResult<TurnPlayer, *mut FFIError> {
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub extern fn game_state_handle_turn_count(handle: *const GameStateHandle) -> *mut FFIResult<u32, *mut FFIError> {
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub extern fn game_state_handle_dead(handle: *const GameStateHandle) -> *mut FFIResult<*mut TileArray, *mut FFIError> {
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub unsafe extern fn result_game_state_update_get_type(result: *mut FFIResult<GameStateUpdate, ()>) -> FFIResultType {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub unsafe extern fn result_game_state_update_get_ok(result: *mut FFIResult<GameStateUpdate, ()>) -> GameStateUpdate {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub unsafe extern fn result_game_state_update_get_error(result: *mut FFIResult<GameStateUpdate, ()>) -> () {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub unsafe extern fn result_u32_get_type(result: *mut FFIResult<u32, *mut FFIError>) -> FFIResultType {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub unsafe extern fn result_u32_get_ok(result: *mut FFIResult<u32, *mut FFIError>) -> u32 {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub unsafe extern fn result_u32_get_error(result: *mut FFIResult<u32, *mut FFIError>) -> *mut FFIError {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_input` is never used
[INFO] [stdout]   --> src/bot/mod.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn new_input(board: &Board) -> Tensor<f64, 3> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `STARTING_DEPTH` is never used
[INFO] [stdout]  --> src/bot/minmax/mod.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | static STARTING_DEPTH: u8 = 3;
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_max_play` is never used
[INFO] [stdout]  --> src/bot/minmax/mod.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn min_max_play(game_state: &GameState) -> Option<Play> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Heuristic` is never constructed
[INFO] [stdout]    --> src/bot/minmax/mod.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct Heuristic(i8);
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MinMaxPlayer` is never used
[INFO] [stdout]    --> src/bot/minmax/mod.rs:115:6
[INFO] [stdout]     |
[INFO] [stdout] 115 | enum MinMaxPlayer {
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]    --> src/bot/minmax/mod.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl MinMaxPlayer {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 123 |     fn next(self) -> MinMaxPlayer {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_max` is never used
[INFO] [stdout]    --> src/bot/minmax/mod.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn min_max(
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_edge` is never used
[INFO] [stdout]    --> src/state.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn is_edge(&self, position: Position) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_setup` is never used
[INFO] [stdout]    --> src/state.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl GameState {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn from_setup(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/state.rs:645:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub fn representation(&self) -> easy_ml::tensors::Tensor<f64, 3> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 649 |     pub fn tiles(&self) -> Vec<Tile> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 653 |     pub fn size(&self) -> (u8, u8) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 657 |     pub fn turn(&self) -> Player {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 661 |     pub fn dead(&self) -> &Vec<Piece> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 665 |     pub fn turn_count(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 669 |     pub fn king_position(&self) -> Position {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `panic`
[INFO] [stdout]   --> src/ffi/results.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn from_panic(panic: Box<dyn std::any::Any + Send>, context: &'static str) -> FFIError {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_panic`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_input` is never used
[INFO] [stdout]   --> src/bot/mod.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn new_input(board: &Board) -> Tensor<f64, 3> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_edge` is never used
[INFO] [stdout]    --> src/state.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn is_edge(&self, position: Position) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_setup` is never used
[INFO] [stdout]    --> src/state.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl GameState {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn from_setup(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `representation` is never used
[INFO] [stdout]    --> src/state.rs:645:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl GameState {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub fn representation(&self) -> easy_ml::tensors::Tensor<f64, 3> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Locale` is never constructed
[INFO] [stdout]   --> src/ffi/config.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum ConfigStringKey {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] 17 |     Locale = 0
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ffi/results.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 |     Panic(Option<Backtrace>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FFIErrorType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 36 -     Panic(Option<Backtrace>),
[INFO] [stdout] 36 +     Panic(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ffi/results.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 |     Other(Box<dyn Error + std::panic::RefUnwindSafe>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FFIErrorType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 37 -     Other(Box<dyn Error + std::panic::RefUnwindSafe>),
[INFO] [stdout] 37 +     Other(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_input` is never used
[INFO] [stdout]   --> src/bot/mod.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn new_input(board: &Board) -> Tensor<f64, 3> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_edge` is never used
[INFO] [stdout]    --> src/state.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn is_edge(&self, position: Position) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `representation`, `tiles`, `size`, and `turn_count` are never used
[INFO] [stdout]    --> src/state.rs:645:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub fn representation(&self) -> easy_ml::tensors::Tensor<f64, 3> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 649 |     pub fn tiles(&self) -> Vec<Tile> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 653 |     pub fn size(&self) -> (u8, u8) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 665 |     pub fn turn_count(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `panic`
[INFO] [stdout]   --> src/ffi/results.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn from_panic(panic: Box<dyn std::any::Any + Send>, context: &'static str) -> FFIError {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_panic`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_input` is never used
[INFO] [stdout]   --> src/bot/mod.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn new_input(board: &Board) -> Tensor<f64, 3> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_edge` is never used
[INFO] [stdout]    --> src/state.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn is_edge(&self, position: Position) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `representation` is never used
[INFO] [stdout]    --> src/state.rs:645:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl GameState {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub fn representation(&self) -> easy_ml::tensors::Tensor<f64, 3> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Locale` is never constructed
[INFO] [stdout]   --> src/ffi/config.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum ConfigStringKey {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] 17 |     Locale = 0
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ffi/results.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 |     Panic(Option<Backtrace>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FFIErrorType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 36 -     Panic(Option<Backtrace>),
[INFO] [stdout] 36 +     Panic(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ffi/results.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 |     Other(Box<dyn Error + std::panic::RefUnwindSafe>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FFIErrorType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 37 -     Other(Box<dyn Error + std::panic::RefUnwindSafe>),
[INFO] [stdout] 37 +     Other(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 22s
[INFO] running `Command { std: "docker" "inspect" "92b2de2ec5992b08e801ffae1eb5ec7915178e2a06ebabaa7bb634cfd081f507", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92b2de2ec5992b08e801ffae1eb5ec7915178e2a06ebabaa7bb634cfd081f507", kill_on_drop: false }`
[INFO] [stdout] 92b2de2ec5992b08e801ffae1eb5ec7915178e2a06ebabaa7bb634cfd081f507
