[INFO] fetching crate vesync 0.1.0...
[INFO] testing vesync-0.1.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate vesync 0.1.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate vesync 0.1.0
[INFO] finished tweaking crates.io crate vesync 0.1.0
[INFO] tweaked toml for crates.io crate vesync 0.1.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate vesync 0.1.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 82 packages to highest compatible versions
[INFO] [stderr]       Adding attohttpc v0.14.0 (available: v0.31.0)
[INFO] [stderr]       Adding md5 v0.7.0 (available: v0.8.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f
[INFO] running `Command { std: "docker" "start" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.16.2
[INFO] [stderr]    Compiling crc32fast v1.5.2
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling md5 v0.7.0
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling attohttpc v0.14.0
[INFO] [stderr]    Compiling vesync v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: fields `deviceImg`, `connectionType`, `deviceType`, `model`, and `currentFirmVersion` are never read
[INFO] [stdout]    --> src/device.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 171 | struct DeviceResponse {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 172 |     pub deviceName: String, // plaintext name of device
[INFO] [stdout] 173 |     pub deviceImg: String,  // URL
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub connectionType: String, // 'wifi',
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 177 |     pub connectionStatus: ConnectionStatus,
[INFO] [stdout] 178 |     pub deviceType: String,         // 'wifi-switch-1.3',
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 179 |     pub model: String,              // What are the known values? 'wifi-switch',
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 180 |     pub currentFirmVersion: String, // eg, '1.99', '2.123'; maybe we can convert to a number?
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DeviceResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nickName`, `avatarIcon`, `userType`, `acceptLanguage`, and `termsStatus` are never read
[INFO] [stdout]   --> src/account.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct AccountResponse {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub nickName: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 54 |     pub avatarIcon: String, // is a URL
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 55 |     pub userType: i32,      // probably an enum?
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 56 |     pub acceptLanguage: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub termsStatus: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AccountResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/device.rs:54:66
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn get_devices(account: &'a VeSyncAccount) -> Result<Vec<VeSyncDevice>, ()> {
[INFO] [stdout]    |                                  -- the lifetime is named here   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn get_devices(account: &'a VeSyncAccount) -> Result<Vec<VeSyncDevice<'a>>, ()> {
[INFO] [stdout]    |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/account.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn get_devices(&self) -> Result<Vec<VeSyncDevice>, ()> {
[INFO] [stdout]    |                        ^^^^^                ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn get_devices(&self) -> Result<Vec<VeSyncDevice<'_>>, ()> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.63s
[INFO] running `Command { std: "docker" "inspect" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling vesync v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: fields `deviceImg`, `connectionType`, `deviceType`, `model`, and `currentFirmVersion` are never read
[INFO] [stdout]    --> src/device.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 171 | struct DeviceResponse {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 172 |     pub deviceName: String, // plaintext name of device
[INFO] [stdout] 173 |     pub deviceImg: String,  // URL
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub connectionType: String, // 'wifi',
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 177 |     pub connectionStatus: ConnectionStatus,
[INFO] [stdout] 178 |     pub deviceType: String,         // 'wifi-switch-1.3',
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 179 |     pub model: String,              // What are the known values? 'wifi-switch',
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 180 |     pub currentFirmVersion: String, // eg, '1.99', '2.123'; maybe we can convert to a number?
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DeviceResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nickName`, `avatarIcon`, `userType`, `acceptLanguage`, and `termsStatus` are never read
[INFO] [stdout]   --> src/account.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct AccountResponse {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub nickName: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 54 |     pub avatarIcon: String, // is a URL
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 55 |     pub userType: i32,      // probably an enum?
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 56 |     pub acceptLanguage: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub termsStatus: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AccountResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/device.rs:54:66
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn get_devices(account: &'a VeSyncAccount) -> Result<Vec<VeSyncDevice>, ()> {
[INFO] [stdout]    |                                  -- the lifetime is named here   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn get_devices(account: &'a VeSyncAccount) -> Result<Vec<VeSyncDevice<'a>>, ()> {
[INFO] [stdout]    |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/account.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn get_devices(&self) -> Result<Vec<VeSyncDevice>, ()> {
[INFO] [stdout]    |                        ^^^^^                ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn get_devices(&self) -> Result<Vec<VeSyncDevice<'_>>, ()> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `deviceImg`, `connectionType`, `deviceType`, `model`, and `currentFirmVersion` are never read
[INFO] [stdout]    --> src/device.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 171 | struct DeviceResponse {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 172 |     pub deviceName: String, // plaintext name of device
[INFO] [stdout] 173 |     pub deviceImg: String,  // URL
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub connectionType: String, // 'wifi',
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 177 |     pub connectionStatus: ConnectionStatus,
[INFO] [stdout] 178 |     pub deviceType: String,         // 'wifi-switch-1.3',
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 179 |     pub model: String,              // What are the known values? 'wifi-switch',
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 180 |     pub currentFirmVersion: String, // eg, '1.99', '2.123'; maybe we can convert to a number?
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DeviceResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nickName`, `avatarIcon`, `userType`, `acceptLanguage`, and `termsStatus` are never read
[INFO] [stdout]   --> src/account.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct AccountResponse {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub nickName: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 54 |     pub avatarIcon: String, // is a URL
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 55 |     pub userType: i32,      // probably an enum?
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 56 |     pub acceptLanguage: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub termsStatus: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AccountResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/device.rs:54:66
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn get_devices(account: &'a VeSyncAccount) -> Result<Vec<VeSyncDevice>, ()> {
[INFO] [stdout]    |                                  -- the lifetime is named here   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn get_devices(account: &'a VeSyncAccount) -> Result<Vec<VeSyncDevice<'a>>, ()> {
[INFO] [stdout]    |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/account.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn get_devices(&self) -> Result<Vec<VeSyncDevice>, ()> {
[INFO] [stdout]    |                        ^^^^^                ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn get_devices(&self) -> Result<Vec<VeSyncDevice<'_>>, ()> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.98s
[INFO] running `Command { std: "docker" "inspect" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: fields `deviceImg`, `connectionType`, `deviceType`, `model`, and `currentFirmVersion` are never read
[INFO] [stderr]    --> src/device.rs:173:9
[INFO] [stderr]     |
[INFO] [stderr] 171 | struct DeviceResponse {
[INFO] [stderr]     |        -------------- fields in this struct
[INFO] [stderr] 172 |     pub deviceName: String, // plaintext name of device
[INFO] [stderr] 173 |     pub deviceImg: String,  // URL
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |     pub connectionType: String, // 'wifi',
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 177 |     pub connectionStatus: ConnectionStatus,
[INFO] [stderr] 178 |     pub deviceType: String,         // 'wifi-switch-1.3',
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 179 |     pub model: String,              // What are the known values? 'wifi-switch',
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 180 |     pub currentFirmVersion: String, // eg, '1.99', '2.123'; maybe we can convert to a number?
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `DeviceResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `nickName`, `avatarIcon`, `userType`, `acceptLanguage`, and `termsStatus` are never read
[INFO] [stderr]   --> src/account.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 50 | struct AccountResponse {
[INFO] [stderr]    |        --------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub nickName: String,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 54 |     pub avatarIcon: String, // is a URL
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 55 |     pub userType: i32,      // probably an enum?
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 56 |     pub acceptLanguage: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 57 |     pub termsStatus: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AccountResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/device.rs:54:66
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn get_devices(account: &'a VeSyncAccount) -> Result<Vec<VeSyncDevice>, ()> {
[INFO] [stderr]    |                                  -- the lifetime is named here   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn get_devices(account: &'a VeSyncAccount) -> Result<Vec<VeSyncDevice<'a>>, ()> {
[INFO] [stderr]    |                                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/account.rs:36:24
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub fn get_devices(&self) -> Result<Vec<VeSyncDevice>, ()> {
[INFO] [stderr]    |                        ^^^^^                ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub fn get_devices(&self) -> Result<Vec<VeSyncDevice<'_>>, ()> {
[INFO] [stderr]    |                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `vesync` (lib) generated 4 warnings (run `cargo fix --lib -p vesync` to apply 2 suggestions)
[INFO] [stderr] warning: `vesync` (lib test) generated 4 warnings (4 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vesync-9ee4a47bca6d0e36)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]    Doc-tests vesync
[INFO] [stdout] test account::tests::test_hash ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f", kill_on_drop: false }`
[INFO] [stdout] dd6aa211cdc62736f7979da5edd43459419fb60d5d1ecbab602df1ee3f2c350f
