[INFO] cloning repository https://github.com/rsuu/tgup [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rsuu/tgup" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frsuu%2Ftgup", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frsuu%2Ftgup'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8c77a971eb3ebe5e42246a2842d42868fbb0de5e [INFO] checking rsuu/tgup against master#cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c for pr-143170 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frsuu%2Ftgup" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/rsuu/tgup [INFO] finished tweaking git repo https://github.com/rsuu/tgup [INFO] tweaked toml for git repo https://github.com/rsuu/tgup written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/rsuu/tgup on toolchain cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/rsuu/tgup 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" "+cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded windows-targets v0.52.4 [INFO] [stderr] Downloaded thiserror v1.0.57 [INFO] [stderr] Downloaded thiserror-impl v1.0.57 [INFO] [stderr] Downloaded errno v0.3.8 [INFO] [stderr] Downloaded either v1.10.0 [INFO] [stderr] Downloaded prost-build v0.12.3 [INFO] [stderr] Downloaded prost-derive v0.12.3 [INFO] [stderr] Downloaded prost v0.12.3 [INFO] [stderr] Downloaded bytemuck v1.14.3 [INFO] [stderr] Downloaded num-traits v0.2.18 [INFO] [stderr] Downloaded prettyplease v0.2.16 [INFO] [stderr] Downloaded indexmap v2.2.5 [INFO] [stderr] Downloaded crc32fast v1.4.0 [INFO] [stderr] Downloaded prost-types v0.12.3 [INFO] [stderr] Downloaded petgraph v0.6.4 [INFO] [stderr] Downloaded syn v2.0.52 [INFO] [stderr] Downloaded regex v1.10.3 [INFO] [stderr] Downloaded rustix v0.38.31 [INFO] [stderr] Downloaded windows_x86_64_gnullvm v0.52.4 [INFO] [stderr] Downloaded windows_aarch64_gnullvm v0.52.4 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.52.4 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.52.4 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.52.4 [INFO] [stderr] Downloaded windows_i686_gnu v0.52.4 [INFO] [stderr] Downloaded windows_i686_msvc v0.52.4 [INFO] [stderr] Downloaded linux-raw-sys v0.4.13 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 90a9f330f13a05145afdbbc88513428dd4bf8f13d6ea28b9ec918906126ae31b [INFO] running `Command { std: "docker" "start" "-a" "90a9f330f13a05145afdbbc88513428dd4bf8f13d6ea28b9ec918906126ae31b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "90a9f330f13a05145afdbbc88513428dd4bf8f13d6ea28b9ec918906126ae31b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "90a9f330f13a05145afdbbc88513428dd4bf8f13d6ea28b9ec918906126ae31b", kill_on_drop: false }` [INFO] [stdout] 90a9f330f13a05145afdbbc88513428dd4bf8f13d6ea28b9ec918906126ae31b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cddedff4a32848ae651acf126ae766d211bcc0fcfed4ddcd00e48069b9fba5fa [INFO] running `Command { std: "docker" "start" "-a" "cddedff4a32848ae651acf126ae766d211bcc0fcfed4ddcd00e48069b9fba5fa", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.78 [INFO] [stderr] Compiling either v1.10.0 [INFO] [stderr] Compiling anyhow v1.0.80 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling rustix v0.38.31 [INFO] [stderr] Compiling bitflags v2.4.2 [INFO] [stderr] Compiling linux-raw-sys v0.4.13 [INFO] [stderr] Compiling bytes v1.5.0 [INFO] [stderr] Compiling prettyplease v0.2.16 [INFO] [stderr] Compiling itertools v0.11.0 [INFO] [stderr] Compiling crc32fast v1.4.0 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Compiling hashbrown v0.14.3 [INFO] [stderr] Compiling fastrand v2.0.1 [INFO] [stderr] Compiling fixedbitset v0.4.2 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking miniz_oxide v0.7.2 [INFO] [stderr] Compiling syn v2.0.52 [INFO] [stderr] Compiling memoffset v0.9.0 [INFO] [stderr] Compiling indexmap v2.2.5 [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Compiling multimap v0.8.3 [INFO] [stderr] Checking flate2 v1.0.28 [INFO] [stderr] Checking getrandom v0.2.12 [INFO] [stderr] Compiling petgraph v0.6.4 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking fdeflate v0.3.4 [INFO] [stderr] Compiling thiserror v1.0.57 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking jpeg-decoder v0.3.1 [INFO] [stderr] Checking png v0.17.13 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Compiling regex-automata v0.4.6 [INFO] [stderr] Checking bytemuck v1.14.3 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling tempfile v3.10.1 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking nix v0.27.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling prost-derive v0.12.3 [INFO] [stderr] Compiling thiserror-impl v1.0.57 [INFO] [stderr] Compiling regex v1.10.3 [INFO] [stderr] Compiling prost v0.12.3 [INFO] [stderr] Compiling prost-types v0.12.3 [INFO] [stderr] Compiling prost-build v0.12.3 [INFO] [stderr] Compiling tgui v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: type `fn_AHardwareBuffer_release` should have an upper camel case name [INFO] [stdout] --> src/ffi/android.rs:79:6 [INFO] [stdout] | [INFO] [stdout] 79 | type fn_AHardwareBuffer_release = unsafe extern "C" fn(buffer: *mut AHardwareBuffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FnAhardwareBufferRelease` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `fn_AHardwareBuffer_recvHandleFromUnixSocket` should have an upper camel case name [INFO] [stdout] --> src/ffi/android.rs:81:6 [INFO] [stdout] | [INFO] [stdout] 81 | type fn_AHardwareBuffer_recvHandleFromUnixSocket = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FnAhardwareBufferRecvHandleFromUnixSocket` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `fn_AHardwareBuffer_allocate` should have an upper camel case name [INFO] [stdout] --> src/ffi/android.rs:84:6 [INFO] [stdout] | [INFO] [stdout] 84 | type fn_AHardwareBuffer_allocate = unsafe extern "C" fn( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FnAhardwareBufferAllocate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `fn_AHardwareBuffer_isSupported` should have an upper camel case name [INFO] [stdout] --> src/ffi/android.rs:88:6 [INFO] [stdout] | [INFO] [stdout] 88 | type fn_AHardwareBuffer_isSupported = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FnAhardwareBufferIsSupported` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlitBufferResponse`, `DeleteBufferResponse`, and `SetBufferResponse` [INFO] [stdout] --> src/view/buffer.rs:14:54 [INFO] [stdout] | [INFO] [stdout] 14 | method, AddBufferRequest, BlitBufferRequest, BlitBufferResponse, DeleteBufferResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | Method, SetBufferRequest, SetBufferResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ViewSet` [INFO] [stdout] --> src/view/img.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{items::*, View, ViewSet, *}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `fn_AHardwareBuffer_release` should have an upper camel case name [INFO] [stdout] --> src/ffi/android.rs:79:6 [INFO] [stdout] | [INFO] [stdout] 79 | type fn_AHardwareBuffer_release = unsafe extern "C" fn(buffer: *mut AHardwareBuffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FnAhardwareBufferRelease` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `fn_AHardwareBuffer_recvHandleFromUnixSocket` should have an upper camel case name [INFO] [stdout] --> src/ffi/android.rs:81:6 [INFO] [stdout] | [INFO] [stdout] 81 | type fn_AHardwareBuffer_recvHandleFromUnixSocket = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FnAhardwareBufferRecvHandleFromUnixSocket` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `fn_AHardwareBuffer_allocate` should have an upper camel case name [INFO] [stdout] --> src/ffi/android.rs:84:6 [INFO] [stdout] | [INFO] [stdout] 84 | type fn_AHardwareBuffer_allocate = unsafe extern "C" fn( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FnAhardwareBufferAllocate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `fn_AHardwareBuffer_isSupported` should have an upper camel case name [INFO] [stdout] --> src/ffi/android.rs:88:6 [INFO] [stdout] | [INFO] [stdout] 88 | type fn_AHardwareBuffer_isSupported = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FnAhardwareBufferIsSupported` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlitBufferResponse`, `DeleteBufferResponse`, and `SetBufferResponse` [INFO] [stdout] --> src/view/buffer.rs:14:54 [INFO] [stdout] | [INFO] [stdout] 14 | method, AddBufferRequest, BlitBufferRequest, BlitBufferResponse, DeleteBufferResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | Method, SetBufferRequest, SetBufferResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ViewSet` [INFO] [stdout] --> src/view/img.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{items::*, View, ViewSet, *}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> src/task.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | thread::sleep_ms, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> src/task.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | sleep_ms(10); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> src/task.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | sleep_ms(10); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> src/task.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | thread::sleep_ms, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> src/task.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | sleep_ms(10); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> src/task.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | sleep_ms(10); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `View` [INFO] [stdout] --> src/view/surface.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{items::*, View, ViewSet, *}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/ffi/android.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `libandroid` [INFO] [stdout] --> src/ffi/android.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let libandroid = LibAndroid::new(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_libandroid` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `desc` [INFO] [stdout] --> src/ffi/android.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | let desc = AHardwareBuffer_Desc { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_desc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awb` [INFO] [stdout] --> src/ffi/android.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | let mut awb = AHardwareBuffer { _unused: [] }; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_awb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ffi/android.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let mut awb = AHardwareBuffer { _unused: [] }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fn_allocate` [INFO] [stdout] --> src/ffi/android.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | let fn_allocate: Option = [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_allocate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/remote/layout.rs:36:47 [INFO] [stdout] | [INFO] [stdout] 36 | let CreateRemoteLayoutResponse { rid, code } = self.sr( [INFO] [stdout] | ^^^^ help: try ignoring the field: `code: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/remote/layout.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | req: &RLayout, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `fd` is never read [INFO] [stdout] --> src/view/buffer.rs:49:17 [INFO] [stdout] | [INFO] [stdout] 49 | let mut fd = Option::::None; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/view.rs:113:17 [INFO] [stdout] | [INFO] [stdout] 113 | fn set_data(mut self, _: items::Create) -> Self { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `View` [INFO] [stdout] --> src/view/surface.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{items::*, View, ViewSet, *}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/ffi/android.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `libandroid` [INFO] [stdout] --> src/ffi/android.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let libandroid = LibAndroid::new(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_libandroid` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `desc` [INFO] [stdout] --> src/ffi/android.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | let desc = AHardwareBuffer_Desc { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_desc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awb` [INFO] [stdout] --> src/ffi/android.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | let mut awb = AHardwareBuffer { _unused: [] }; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_awb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ffi/android.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let mut awb = AHardwareBuffer { _unused: [] }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fn_allocate` [INFO] [stdout] --> src/ffi/android.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | let fn_allocate: Option = [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_allocate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/remote/layout.rs:36:47 [INFO] [stdout] | [INFO] [stdout] 36 | let CreateRemoteLayoutResponse { rid, code } = self.sr( [INFO] [stdout] | ^^^^ help: try ignoring the field: `code: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/remote/layout.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | req: &RLayout, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `fd` is never read [INFO] [stdout] --> src/view/buffer.rs:49:17 [INFO] [stdout] | [INFO] [stdout] 49 | let mut fd = Option::::None; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/view.rs:113:17 [INFO] [stdout] | [INFO] [stdout] 113 | fn set_data(mut self, _: items::Create) -> Self { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ffi/android.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/ffi/android.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | unsafe fn start() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AHardwareBuffer_release` is never used [INFO] [stdout] --> src/ffi/android.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | fn AHardwareBuffer_release(buffer: *mut AHardwareBuffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AHardwareBuffer_recvHandleFromUnixSocket` is never used [INFO] [stdout] --> src/ffi/android.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | fn AHardwareBuffer_recvHandleFromUnixSocket( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AHardwareBuffer_allocate` is never used [INFO] [stdout] --> src/ffi/android.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | fn AHardwareBuffer_allocate( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AHardwareBuffer_isSupported` is never used [INFO] [stdout] --> src/ffi/android.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | fn AHardwareBuffer_isSupported(desc: *const AHardwareBuffer_Desc) -> c_int; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `socketFd` should have a snake case name [INFO] [stdout] --> src/ffi/android.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | unsafe extern "C" fn(socketFd: c_int, outBuffer: *mut *mut AHardwareBuffer) -> c_int; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `socket_fd` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `outBuffer` should have a snake case name [INFO] [stdout] --> src/ffi/android.rs:82:43 [INFO] [stdout] | [INFO] [stdout] 82 | unsafe extern "C" fn(socketFd: c_int, outBuffer: *mut *mut AHardwareBuffer) -> c_int; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `out_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `outBuffer` should have a snake case name [INFO] [stdout] --> src/ffi/android.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | outBuffer: *mut *mut AHardwareBuffer, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `out_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ViewSet` and `View` [INFO] [stdout] --> examples/progress_bar.rs:16:35 [INFO] [stdout] | [INFO] [stdout] 16 | use tgui::{items::Visibility, Vi, View, ViewSet, *}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/text.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 7 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/progress_bar.rs:15:18 [INFO] [stdout] | [INFO] [stdout] 15 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/text.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | sleep_ms(1000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/text.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | sleep_ms(1000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/progress_bar.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | sleep_ms(100); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `space` [INFO] [stdout] --> examples/progress_bar.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | let space = act.new_space(&layout_linear)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_space` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right_text_view` [INFO] [stdout] --> examples/progress_bar.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | let right_text_view = act.new_text(&layout_linear, "10:00:00".to_string())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_text_view` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> examples/surface.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{collections::HashMap, thread::sleep_ms}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/dev.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `items::Visibility` [INFO] [stdout] --> examples/surface.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use tgui::{items::Visibility, View, ViewSet, *}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/surface.rs:7:41 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{collections::HashMap, thread::sleep_ms}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/surface.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | sleep_ms(3000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/dev.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | sleep_ms(3000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/dev.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | sleep_ms(1000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/dev.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | sleep_ms(1000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Tgui` [INFO] [stdout] --> examples/surface.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | let tgui = Tgui::new()?.conn()?; [INFO] [stdout] | ^^^^ use of undeclared type `Tgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Tgui` [INFO] [stdout] --> examples/dev.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | let tgui = Tgui::new()?.conn()?; [INFO] [stdout] | ^^^^ use of undeclared type `Tgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/widget.rs:3:18 [INFO] [stdout] | [INFO] [stdout] 3 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/widget.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | sleep_ms(1000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Event` [INFO] [stdout] --> examples/event.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | let mut event = Event::new(&act, text_view.res())?; [INFO] [stdout] | ^^^^^ use of undeclared type `Event` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use crate::items::Event; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::items::event::Event; [INFO] [stdout] | [INFO] [stdout] 1 + use tgui::items::Event; [INFO] [stdout] | [INFO] [stdout] 1 + use tgui::items::event::Event; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Tgui` [INFO] [stdout] --> examples/widget.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | let tgui = Tgui::new()?.conn()?; [INFO] [stdout] | ^^^^ use of undeclared type `Tgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `tgui::Activity` in the current scope [INFO] [stdout] --> examples/surface.rs:12:25 [INFO] [stdout] | [INFO] [stdout] 12 | let act = Activity::new().conn(&tgui)?; [INFO] [stdout] | ^^^ function or associated item not found in `tgui::Activity` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `tgui::Activity` in the current scope [INFO] [stdout] --> examples/dev.rs:10:25 [INFO] [stdout] | [INFO] [stdout] 10 | let act = Activity::new(); [INFO] [stdout] | ^^^ function or associated item not found in `tgui::Activity` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep_ms` [INFO] [stdout] --> examples/event.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `View` [INFO] [stdout] --> examples/event.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | use tgui::{View, ViewSet, *}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/event.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Tgui` [INFO] [stdout] --> examples/event.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | let tgui = Tgui::new()?.conn()?; [INFO] [stdout] | ^^^^ use of undeclared type `Tgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `tgui::items::Create` in the current scope [INFO] [stdout] --> examples/dev.rs:27:35 [INFO] [stdout] | [INFO] [stdout] 27 | let data = items::Create::new().set_aid(aid).set_v(100).set_parent(-1); [INFO] [stdout] | ^^^ function or associated item not found in `tgui::items::Create` [INFO] [stdout] | [INFO] [stdout] help: there is a method `ne` with a similar name, but with different arguments [INFO] [stdout] --> /rustc/cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c/library/core/src/cmp.rs:265:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/pip_act.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0433, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0433`. [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> examples/dev.rs:28:19 [INFO] [stdout] | [INFO] [stdout] 28 | let img = Img::new().set_data(data); [INFO] [stdout] | ^^^^^^^^-- argument #1 of type `&tgui::Activity` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn new(act: &Activity) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 28 | let img = Img::new(/* &tgui::Activity */).set_data(data); [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/pip_act.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | sleep_ms(10000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Tgui` [INFO] [stdout] --> examples/pip_act.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | let tgui = Tgui::new()?.conn()?; [INFO] [stdout] | ^^^^ use of undeclared type `Tgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `tgui::items::Create` in the current scope [INFO] [stdout] --> examples/dev.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | let data = items::Create::new().set_aid(aid).set_parent(-1).set_v(100); [INFO] [stdout] | ^^^ function or associated item not found in `tgui::items::Create` [INFO] [stdout] | [INFO] [stdout] help: there is a method `ne` with a similar name, but with different arguments [INFO] [stdout] --> /rustc/cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c/library/core/src/cmp.rs:265:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> examples/dev.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 38 | let req = view::Text::new().set_data(data).set_text(text); [INFO] [stdout] | ^^^^^^^^^^^^^^^-- argument #1 of type `&tgui::Activity` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn new(act: &Activity) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 38 | let req = view::Text::new(/* &tgui::Activity */).set_data(data).set_text(text); [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `tgui` (example "surface") due to 2 previous errors; 4 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `tgui::Activity` in the current scope [INFO] [stdout] --> examples/event.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | let act = Activity::new().conn(&tgui)?; [INFO] [stdout] | ^^^ function or associated item not found in `tgui::Activity` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> examples/event.rs:10:21 [INFO] [stdout] | [INFO] [stdout] 10 | let text_view = Text::new() [INFO] [stdout] | ^^^^^^^^^-- argument #1 of type `&tgui::Activity` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn new(act: &Activity) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 10 | let text_view = Text::new(/* &tgui::Activity */) [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0433, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `tgui` (example "widget") due to 1 previous error; 2 warnings emitted [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `tgui::Activity` in the current scope [INFO] [stdout] --> examples/pip_act.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | let act = Activity::new().set_ty(ActivityType::Pip).conn(&tgui)?; [INFO] [stdout] | ^^^ function or associated item not found in `tgui::Activity` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> examples/event.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | .conn(&tgui)?; [INFO] [stdout] | ^^^^ ----- unexpected argument [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn conn(mut self) -> crate::Res [INFO] [stdout] | ^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 13 - .conn(&tgui)?; [INFO] [stdout] 13 + .conn()?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> examples/pip_act.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | let img = Img::new().set_data(data).conn(&tgui)?; [INFO] [stdout] | ^^^^^^^^-- argument #1 of type `&tgui::Activity` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn new(act: &Activity) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 10 | let img = Img::new(/* &tgui::Activity */).set_data(data).conn(&tgui)?; [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `tgui` (example "dev") due to 6 previous errors; 4 warnings emitted [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> examples/pip_act.rs:10:41 [INFO] [stdout] | [INFO] [stdout] 10 | let img = Img::new().set_data(data).conn(&tgui)?; [INFO] [stdout] | ^^^^ ----- unexpected argument [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn conn(mut self) -> crate::Res [INFO] [stdout] | ^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 10 - let img = Img::new().set_data(data).conn(&tgui)?; [INFO] [stdout] 10 + let img = Img::new().set_data(data).conn()?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> examples/pip_act.rs:12:29 [INFO] [stdout] | [INFO] [stdout] 12 | img.update(&tgui, &ity, items::View::try_from(&act, &img))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---- unexpected argument #1 [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /rustc/cf38b8e663f15db10ce49d7bbce02c99fc3dbc0c/library/core/src/convert/mod.rs:696:8 [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 12 - img.update(&tgui, &ity, items::View::try_from(&act, &img))?; [INFO] [stdout] 12 + img.update(&tgui, &ity, items::View::try_from(&img))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `res` found for struct `WrapView` in the current scope [INFO] [stdout] --> examples/event.rs:14:39 [INFO] [stdout] | [INFO] [stdout] 14 | let view = act.gen_view(text_view.res()); [INFO] [stdout] | ^^^ private field, not a method [INFO] [stdout] | [INFO] [stdout] help: there is a method `req` with a similar name [INFO] [stdout] | [INFO] [stdout] 14 - let view = act.gen_view(text_view.res()); [INFO] [stdout] 14 + let view = act.gen_view(text_view.req()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ViewSet` and `View` [INFO] [stdout] --> examples/activity.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | use tgui::{View, ViewSet, *}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/activity.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/activity.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | sleep_ms(3000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Tgui` [INFO] [stdout] --> examples/activity.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | let tgui = Tgui::new()?.conn()?; [INFO] [stdout] | ^^^^ use of undeclared type `Tgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 3 arguments were supplied [INFO] [stdout] --> examples/pip_act.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | img.update(&tgui, &ity, items::View::try_from(&act, &img))?; [INFO] [stdout] | ^^^^^^ ---- --------------------------------- unexpected argument #3 of type `Result` [INFO] [stdout] | | [INFO] [stdout] | expected `View`, found `&ImgTy` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view/img.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn update(&self, ity: &ImgTy, view: items::View) -> Res { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 12 - img.update(&tgui, &ity, items::View::try_from(&act, &img))?; [INFO] [stdout] 12 + img.update(&tgui, /* tgui::items::View */)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `res` found for struct `WrapView` in the current scope [INFO] [stdout] --> examples/event.rs:15:48 [INFO] [stdout] | [INFO] [stdout] 15 | let mut event = Event::new(&act, text_view.res())?; [INFO] [stdout] | ^^^ private field, not a method [INFO] [stdout] | [INFO] [stdout] help: there is a method `req` with a similar name [INFO] [stdout] | [INFO] [stdout] 15 - let mut event = Event::new(&act, text_view.res())?; [INFO] [stdout] 15 + let mut event = Event::new(&act, text_view.req())?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0433, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `tgui` (example "activity") due to 1 previous error; 3 warnings emitted [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `InterceptTy` [INFO] [stdout] --> examples/event.rs:28:37 [INFO] [stdout] | [INFO] [stdout] 28 | event.set_intercept(InterceptTy::VolumeUp, true); [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `InterceptTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `InterceptTy` [INFO] [stdout] --> examples/event.rs:29:37 [INFO] [stdout] | [INFO] [stdout] 29 | event.set_intercept(InterceptTy::VolumeDown, true); [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `InterceptTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `InterceptTy` [INFO] [stdout] --> examples/event.rs:33:37 [INFO] [stdout] | [INFO] [stdout] 33 | event.set_intercept(InterceptTy::BackButton, true); [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `InterceptTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `tgui::items::volume_key_event::VolumeKey::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> examples/event.rs:39:58 [INFO] [stdout] | [INFO] [stdout] 39 | dbg!(items::volume_key_event::VolumeKey::from_i32(*key)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0614]: type `i32` cannot be dereferenced [INFO] [stdout] --> examples/event.rs:39:67 [INFO] [stdout] | [INFO] [stdout] 39 | dbg!(items::volume_key_event::VolumeKey::from_i32(*key)); [INFO] [stdout] | ^^^^ can't be dereferenced [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `tgui` (example "pip_act") due to 6 previous errors; 2 warnings emitted [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/buffer.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use std::thread::sleep_ms; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/buffer.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | sleep_ms(1000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0433, E0599, E0614. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep` [INFO] [stdout] --> examples/buffer.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | sleep_ms(3000); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Tgui` [INFO] [stdout] --> examples/buffer.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | let tgui = Tgui::new()?.conn()?; [INFO] [stdout] | ^^^^ use of undeclared type `Tgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `tgui` (example "event") due to 11 previous errors; 4 warnings emitted [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `tgui::Activity` in the current scope [INFO] [stdout] --> examples/buffer.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | let act = Activity::new().conn(&tgui)?; [INFO] [stdout] | ^^^ function or associated item not found in `tgui::Activity` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> examples/buffer.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | let img = Img::new().set_data(data).conn(&tgui)?; [INFO] [stdout] | ^^^^^^^^-- argument #1 of type `&tgui::Activity` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn new(act: &Activity) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 13 | let img = Img::new(/* &tgui::Activity */).set_data(data).conn(&tgui)?; [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> examples/buffer.rs:13:41 [INFO] [stdout] | [INFO] [stdout] 13 | let img = Img::new().set_data(data).conn(&tgui)?; [INFO] [stdout] | ^^^^ ----- unexpected argument [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn conn(mut self) -> crate::Res [INFO] [stdout] | ^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 13 - let img = Img::new().set_data(data).conn(&tgui)?; [INFO] [stdout] 13 + let img = Img::new().set_data(data).conn()?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `res` found for struct `WrapView` in the current scope [INFO] [stdout] --> examples/buffer.rs:14:33 [INFO] [stdout] | [INFO] [stdout] 14 | let view = act.gen_view(img.res()).unwrap(); [INFO] [stdout] | ^^^ private field, not a method [INFO] [stdout] | [INFO] [stdout] help: there is a method `req` with a similar name [INFO] [stdout] | [INFO] [stdout] 14 - let view = act.gen_view(img.res()).unwrap(); [INFO] [stdout] 14 + let view = act.gen_view(img.req()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `res` found for struct `WrapView` in the current scope [INFO] [stdout] --> examples/buffer.rs:27:37 [INFO] [stdout] | [INFO] [stdout] 27 | let view = act.gen_view(img.res()).unwrap(); [INFO] [stdout] | ^^^ private field, not a method [INFO] [stdout] | [INFO] [stdout] help: there is a method `req` with a similar name [INFO] [stdout] | [INFO] [stdout] 27 - let view = act.gen_view(img.res()).unwrap(); [INFO] [stdout] 27 + let view = act.gen_view(img.req()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> examples/buffer.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | img.refresh(&tgui, view.clone())?; [INFO] [stdout] | ^^^^^^^ ------------ unexpected argument #2 [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view/img.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn refresh(&self, v: &impl View) -> Res { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 28 - img.refresh(&tgui, view.clone())?; [INFO] [stdout] 28 + img.refresh(&tgui)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> examples/buffer.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | img.refresh(&tgui, view.clone())?; [INFO] [stdout] | ^^^^^^^ ------------ unexpected argument #2 [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/view/img.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn refresh(&self, v: &impl View) -> Res { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 39 - img.refresh(&tgui, view.clone())?; [INFO] [stdout] 39 + img.refresh(&tgui)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0433, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `tgui` (example "buffer") due to 8 previous errors; 3 warnings emitted [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ffi/android.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/ffi/android.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | unsafe fn start() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AHardwareBuffer_release` is never used [INFO] [stdout] --> src/ffi/android.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | fn AHardwareBuffer_release(buffer: *mut AHardwareBuffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AHardwareBuffer_recvHandleFromUnixSocket` is never used [INFO] [stdout] --> src/ffi/android.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | fn AHardwareBuffer_recvHandleFromUnixSocket( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AHardwareBuffer_allocate` is never used [INFO] [stdout] --> src/ffi/android.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | fn AHardwareBuffer_allocate( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AHardwareBuffer_isSupported` is never used [INFO] [stdout] --> src/ffi/android.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | fn AHardwareBuffer_isSupported(desc: *const AHardwareBuffer_Desc) -> c_int; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `socketFd` should have a snake case name [INFO] [stdout] --> src/ffi/android.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | unsafe extern "C" fn(socketFd: c_int, outBuffer: *mut *mut AHardwareBuffer) -> c_int; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `socket_fd` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `outBuffer` should have a snake case name [INFO] [stdout] --> src/ffi/android.rs:82:43 [INFO] [stdout] | [INFO] [stdout] 82 | unsafe extern "C" fn(socketFd: c_int, outBuffer: *mut *mut AHardwareBuffer) -> c_int; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `out_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `outBuffer` should have a snake case name [INFO] [stdout] --> src/ffi/android.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | outBuffer: *mut *mut AHardwareBuffer, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `out_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "cddedff4a32848ae651acf126ae766d211bcc0fcfed4ddcd00e48069b9fba5fa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cddedff4a32848ae651acf126ae766d211bcc0fcfed4ddcd00e48069b9fba5fa", kill_on_drop: false }` [INFO] [stdout] cddedff4a32848ae651acf126ae766d211bcc0fcfed4ddcd00e48069b9fba5fa