[INFO] updating cached repository diodelass/Teamech-Embedded-Template [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/diodelass/Teamech-Embedded-Template [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/diodelass/Teamech-Embedded-Template" "work/ex/clippy-test-run/sources/stable/gh/diodelass/Teamech-Embedded-Template"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/diodelass/Teamech-Embedded-Template'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/diodelass/Teamech-Embedded-Template" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/diodelass/Teamech-Embedded-Template"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/diodelass/Teamech-Embedded-Template'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 302bd46d58c0bc0bf006d21a9e9c05dab8c956d3 [INFO] sha for GitHub repo diodelass/Teamech-Embedded-Template: 302bd46d58c0bc0bf006d21a9e9c05dab8c956d3 [INFO] validating manifest of diodelass/Teamech-Embedded-Template on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of diodelass/Teamech-Embedded-Template on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing diodelass/Teamech-Embedded-Template [INFO] finished frobbing diodelass/Teamech-Embedded-Template [INFO] frobbed toml for diodelass/Teamech-Embedded-Template written to work/ex/clippy-test-run/sources/stable/gh/diodelass/Teamech-Embedded-Template/Cargo.toml [INFO] started frobbing diodelass/Teamech-Embedded-Template [INFO] finished frobbing diodelass/Teamech-Embedded-Template [INFO] frobbed toml for diodelass/Teamech-Embedded-Template written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/diodelass/Teamech-Embedded-Template/Cargo.toml [INFO] crate diodelass/Teamech-Embedded-Template has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting diodelass/Teamech-Embedded-Template against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/diodelass/Teamech-Embedded-Template:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] cd00c9b9501fdd08a6f030aa4c04e5c58d50544c7980ea15ee74c887b37b89f1 [INFO] running `"docker" "start" "-a" "cd00c9b9501fdd08a6f030aa4c04e5c58d50544c7980ea15ee74c887b37b89f1"` [INFO] [stderr] Checking teamech-embedded-template v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:43:4 [INFO] [stderr] | [INFO] [stderr] 43 | return time.as_secs()*1_000 + (time.subsec_nanos() as u64)/1_000_000 ; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `time.as_secs()*1_000 + (time.subsec_nanos() as u64)/1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:46:4 [INFO] [stderr] | [INFO] [stderr] 46 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:59:2 [INFO] [stderr] | [INFO] [stderr] 59 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/main.rs:57:26 [INFO] [stderr] | [INFO] [stderr] 57 | result[7-i] = (0xFF & (*n >> i*8)) as u8; [INFO] [stderr] | ^^^^^^^^^ help: consider parenthesizing your expression: `*n >> (i*8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:69:2 [INFO] [stderr] | [INFO] [stderr] 69 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:88:2 [INFO] [stderr] | [INFO] [stderr] 88 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:147:2 [INFO] [stderr] | [INFO] [stderr] 147 | return Ok((keybytes,seed.to_vec())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((keybytes,seed.to_vec()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:180:2 [INFO] [stderr] | [INFO] [stderr] 180 | return Ok(payload); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(payload)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:218:3 [INFO] [stderr] | [INFO] [stderr] 218 | return Ok(message); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(message)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:220:3 [INFO] [stderr] | [INFO] [stderr] 220 | return Err(io::Error::new(io::ErrorKind::InvalidData,"Payload signature verification failed")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(io::Error::new(io::ErrorKind::InvalidData,"Payload signature verification failed"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:261:2 [INFO] [stderr] | [INFO] [stderr] 261 | return sendraw(&listener,&destaddr,&payload); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `sendraw(&listener,&destaddr,&payload)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:43:4 [INFO] [stderr] | [INFO] [stderr] 43 | return time.as_secs()*1_000 + (time.subsec_nanos() as u64)/1_000_000 ; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `time.as_secs()*1_000 + (time.subsec_nanos() as u64)/1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:46:4 [INFO] [stderr] | [INFO] [stderr] 46 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:59:2 [INFO] [stderr] | [INFO] [stderr] 59 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/main.rs:57:26 [INFO] [stderr] | [INFO] [stderr] 57 | result[7-i] = (0xFF & (*n >> i*8)) as u8; [INFO] [stderr] | ^^^^^^^^^ help: consider parenthesizing your expression: `*n >> (i*8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:69:2 [INFO] [stderr] | [INFO] [stderr] 69 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:88:2 [INFO] [stderr] | [INFO] [stderr] 88 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:147:2 [INFO] [stderr] | [INFO] [stderr] 147 | return Ok((keybytes,seed.to_vec())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((keybytes,seed.to_vec()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:180:2 [INFO] [stderr] | [INFO] [stderr] 180 | return Ok(payload); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(payload)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:218:3 [INFO] [stderr] | [INFO] [stderr] 218 | return Ok(message); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(message)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:220:3 [INFO] [stderr] | [INFO] [stderr] 220 | return Err(io::Error::new(io::ErrorKind::InvalidData,"Payload signature verification failed")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(io::Error::new(io::ErrorKind::InvalidData,"Payload signature verification failed"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:261:2 [INFO] [stderr] | [INFO] [stderr] 261 | return sendraw(&listener,&destaddr,&payload); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `sendraw(&listener,&destaddr,&payload)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:43:34 [INFO] [stderr] | [INFO] [stderr] 43 | return time.as_secs()*1_000 + (time.subsec_nanos() as u64)/1_000_000 ; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(time.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:54:16 [INFO] [stderr] | [INFO] [stderr] 54 | fn int2bytes(n:&u64) -> [u8;8] { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:64:16 [INFO] [stderr] | [INFO] [stderr] 64 | fn bytes2int(b:&[u8;8]) -> u64 { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `[u8;8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `b` [INFO] [stderr] --> src/main.rs:66:11 [INFO] [stderr] | [INFO] [stderr] 66 | for i in 0..8 { [INFO] [stderr] | ^^^^ [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:43:34 [INFO] [stderr] | [INFO] [stderr] 43 | return time.as_secs()*1_000 + (time.subsec_nanos() as u64)/1_000_000 ; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(time.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: consider using an iterator [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] 66 | for (i, ) in b.iter().enumerate().take(8) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:54:16 [INFO] [stderr] | [INFO] [stderr] 54 | fn int2bytes(n:&u64) -> [u8;8] { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | result += (b[i] as u64)*2u64.pow(((7-i) as u32)*8u32); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(b[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:74:16 [INFO] [stderr] | [INFO] [stderr] 74 | fn bytes2hex(v:&Vec) -> String { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:64:16 [INFO] [stderr] | [INFO] [stderr] 64 | fn bytes2int(b:&[u8;8]) -> u64 { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `[u8;8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `b` [INFO] [stderr] --> src/main.rs:66:11 [INFO] [stderr] | [INFO] [stderr] 66 | for i in 0..8 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 66 | for (i, ) in b.iter().enumerate().take(8) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | result += (b[i] as u64)*2u64.pow(((7-i) as u32)*8u32); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(b[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:74:16 [INFO] [stderr] | [INFO] [stderr] 74 | fn bytes2hex(v:&Vec) -> String { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | result.push_str(&format!("00")); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using .to_string(): `"00".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | fn keygen(nonce:&[u8;8],padpath:&Path,keysize:&usize) -> Result<(Vec,Vec),io::Error> { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `[u8;8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:94:47 [INFO] [stderr] | [INFO] [stderr] 94 | fn keygen(nonce:&[u8;8],padpath:&Path,keysize:&usize) -> Result<(Vec,Vec),io::Error> { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | result.push_str(&format!("00")); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using .to_string(): `"00".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 108 | let mut seednonce:[u8;8] = nonce.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try dereferencing it: `*nonce` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:154:20 [INFO] [stderr] | [INFO] [stderr] 154 | fn encrypt(message:&Vec,padpath:&Path) -> Result,io::Error> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:190:20 [INFO] [stderr] | [INFO] [stderr] 190 | fn decrypt(payload:&Vec,padpath:&Path) -> Result,io::Error> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:226:61 [INFO] [stderr] | [INFO] [stderr] 226 | fn sendraw(listener:&UdpSocket,destaddr:&SocketAddr,payload:&Vec) -> Result<(),io::Error> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | Ok(nsend) => match nsend < payload.len() { [INFO] [stderr] | __________________________^ [INFO] [stderr] 231 | | // If the message sends in its entirety, exit with success. If it sends [INFO] [stderr] 232 | | // incompletely, try again. [INFO] [stderr] 233 | | false => return Ok(()), [INFO] [stderr] 234 | | true => (), [INFO] [stderr] 235 | | }, [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if !(nsend < payload.len()) { return Ok(()) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:252:61 [INFO] [stderr] | [INFO] [stderr] 252 | fn sendbytes(listener:&UdpSocket,destaddr:&SocketAddr,bytes:&Vec,padpath:&Path) -> Result<(),io::Error> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 252 | fn sendbytes(listener:&UdpSocket,destaddr:&SocketAddr,bytes:&[u8],padpath:&Path) -> Result<(),io::Error> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] help: change `bytes.clone()` to [INFO] [stderr] | [INFO] [stderr] 253 | let mut stampedbytes = bytes.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 37 [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:264:1 [INFO] [stderr] --> src/main.rs:94:17 [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] 264 | / fn main() { [INFO] [stderr] 265 | | if args().count() < 3 || args().count() > 4 { [INFO] [stderr] 94 | fn keygen(nonce:&[u8;8],padpath:&Path,keysize:&usize) -> Result<(Vec,Vec),io::Error> { [INFO] [stderr] 266 | | // If the user provides the wrong number of arguments, remind them of how to use this program. [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `[u8;8]` [INFO] [stderr] 267 | | println!("Usage: teamech-console [host:remoteport] [localport] [keyfile]"); [INFO] [stderr] ... | [INFO] [stderr] 532 | | } // 'recovery [INFO] [stderr] 533 | | } // fn main [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:94:47 [INFO] [stderr] | [INFO] [stderr] 94 | fn keygen(nonce:&[u8;8],padpath:&Path,keysize:&usize) -> Result<(Vec,Vec),io::Error> { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 108 | let mut seednonce:[u8;8] = nonce.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try dereferencing it: `*nonce` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:154:20 [INFO] [stderr] | [INFO] [stderr] 154 | fn encrypt(message:&Vec,padpath:&Path) -> Result,io::Error> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:277:35 [INFO] [stderr] | [INFO] [stderr] 277 | } else if arg.starts_with("-") { [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:190:20 [INFO] [stderr] | [INFO] [stderr] 190 | fn decrypt(payload:&Vec,padpath:&Path) -> Result,io::Error> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:344:4 [INFO] [stderr] | [INFO] [stderr] 344 | match sendbytes(&listener,&serverhost,&vec![],&padpath) { [INFO] [stderr] | _____________^ [INFO] [stderr] 345 | | Err(why) => { [INFO] [stderr] 346 | | println!("Could not send authentication payload - {}",why.description()); [INFO] [stderr] 347 | | sleep(Duration::new(5,0)); [INFO] [stderr] ... | [INFO] [stderr] 350 | | Ok(_) => (), [INFO] [stderr] 351 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 344 | if let Err(why) = sendbytes(&listener,&serverhost,&vec![],&padpath) { [INFO] [stderr] 345 | println!("Could not send authentication payload - {}",why.description()); [INFO] [stderr] 346 | sleep(Duration::new(5,0)); [INFO] [stderr] 347 | continue 'authtry; [INFO] [stderr] 348 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:226:61 [INFO] [stderr] | [INFO] [stderr] 226 | fn sendraw(listener:&UdpSocket,destaddr:&SocketAddr,payload:&Vec) -> Result<(),io::Error> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | Ok(nsend) => match nsend < payload.len() { [INFO] [stderr] | __________________________^ [INFO] [stderr] 231 | | // If the message sends in its entirety, exit with success. If it sends [INFO] [stderr] 232 | | // incompletely, try again. [INFO] [stderr] 233 | | false => return Ok(()), [INFO] [stderr] 234 | | true => (), [INFO] [stderr] 235 | | }, [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if !(nsend < payload.len()) { return Ok(()) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:252:61 [INFO] [stderr] | [INFO] [stderr] 252 | fn sendbytes(listener:&UdpSocket,destaddr:&SocketAddr,bytes:&Vec,padpath:&Path) -> Result<(),io::Error> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 252 | fn sendbytes(listener:&UdpSocket,destaddr:&SocketAddr,bytes:&[u8],padpath:&Path) -> Result<(),io::Error> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] help: change `bytes.clone()` to [INFO] [stderr] | [INFO] [stderr] 253 | let mut stampedbytes = bytes.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:462:57 [INFO] [stderr] | [INFO] [stderr] 462 | } else if msgtime - MSG_VALID_TIME > systime() { [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 463 | | continue 'operator; [INFO] [stderr] 464 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:460:50 [INFO] [stderr] | [INFO] [stderr] 460 | if msgtime + MSG_VALID_TIME < systime() { [INFO] [stderr] | _____________________________________________________________________________^ [INFO] [stderr] 461 | | continue 'operator; [INFO] [stderr] 462 | | } else if msgtime - MSG_VALID_TIME > systime() { [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:499:28 [INFO] [stderr] | [INFO] [stderr] 499 | match &messagetext as &str { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 500 | | // Match various messages that you might want to do [INFO] [stderr] 501 | | // something upon receiving (e.g. commands to read a sensor [INFO] [stderr] 502 | | // or provide status information, or change the state of a [INFO] [stderr] ... | [INFO] [stderr] 507 | | _ => (), [INFO] [stderr] 508 | | }; // match &messagetext [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 499 | if let "Hello world!" = &messagetext as &str { [INFO] [stderr] 500 | reply = String::from("Hello world!"); [INFO] [stderr] 501 | }; // match &messagetext [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:509:31 [INFO] [stderr] | [INFO] [stderr] 509 | if reply.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!reply.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 37 [INFO] [stderr] --> src/main.rs:264:1 [INFO] [stderr] | [INFO] [stderr] 264 | / fn main() { [INFO] [stderr] 265 | | if args().count() < 3 || args().count() > 4 { [INFO] [stderr] 266 | | // If the user provides the wrong number of arguments, remind them of how to use this program. [INFO] [stderr] 267 | | println!("Usage: teamech-console [host:remoteport] [localport] [keyfile]"); [INFO] [stderr] ... | [INFO] [stderr] 532 | | } // 'recovery [INFO] [stderr] 533 | | } // fn main [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:517:26 [INFO] [stderr] | [INFO] [stderr] 517 | match sendbytes(&listener,&serverhost,&replybytes,&padpath) { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 518 | | Err(why) => { [INFO] [stderr] 519 | | println!("Encrypting message failed - {}",why.description()); [INFO] [stderr] 520 | | continue 'operator; [INFO] [stderr] 521 | | }, [INFO] [stderr] 522 | | Ok(_) => (), [INFO] [stderr] 523 | | }; [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 517 | if let Err(why) = sendbytes(&listener,&serverhost,&replybytes,&padpath) { [INFO] [stderr] 518 | println!("Encrypting message failed - {}",why.description()); [INFO] [stderr] 519 | continue 'operator; [INFO] [stderr] 520 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `teamech-embedded-template`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:277:35 [INFO] [stderr] | [INFO] [stderr] 277 | } else if arg.starts_with("-") { [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:344:4 [INFO] [stderr] | [INFO] [stderr] 344 | match sendbytes(&listener,&serverhost,&vec![],&padpath) { [INFO] [stderr] | _____________^ [INFO] [stderr] 345 | | Err(why) => { [INFO] [stderr] 346 | | println!("Could not send authentication payload - {}",why.description()); [INFO] [stderr] 347 | | sleep(Duration::new(5,0)); [INFO] [stderr] ... | [INFO] [stderr] 350 | | Ok(_) => (), [INFO] [stderr] 351 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 344 | if let Err(why) = sendbytes(&listener,&serverhost,&vec![],&padpath) { [INFO] [stderr] 345 | println!("Could not send authentication payload - {}",why.description()); [INFO] [stderr] 346 | sleep(Duration::new(5,0)); [INFO] [stderr] 347 | continue 'authtry; [INFO] [stderr] 348 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:462:57 [INFO] [stderr] | [INFO] [stderr] 462 | } else if msgtime - MSG_VALID_TIME > systime() { [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 463 | | continue 'operator; [INFO] [stderr] 464 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:460:50 [INFO] [stderr] | [INFO] [stderr] 460 | if msgtime + MSG_VALID_TIME < systime() { [INFO] [stderr] | _____________________________________________________________________________^ [INFO] [stderr] 461 | | continue 'operator; [INFO] [stderr] 462 | | } else if msgtime - MSG_VALID_TIME > systime() { [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:499:28 [INFO] [stderr] | [INFO] [stderr] 499 | match &messagetext as &str { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 500 | | // Match various messages that you might want to do [INFO] [stderr] 501 | | // something upon receiving (e.g. commands to read a sensor [INFO] [stderr] 502 | | // or provide status information, or change the state of a [INFO] [stderr] ... | [INFO] [stderr] 507 | | _ => (), [INFO] [stderr] 508 | | }; // match &messagetext [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 499 | if let "Hello world!" = &messagetext as &str { [INFO] [stderr] 500 | reply = String::from("Hello world!"); [INFO] [stderr] 501 | }; // match &messagetext [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:509:31 [INFO] [stderr] | [INFO] [stderr] 509 | if reply.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!reply.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:517:26 [INFO] [stderr] | [INFO] [stderr] 517 | match sendbytes(&listener,&serverhost,&replybytes,&padpath) { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 518 | | Err(why) => { [INFO] [stderr] 519 | | println!("Encrypting message failed - {}",why.description()); [INFO] [stderr] 520 | | continue 'operator; [INFO] [stderr] 521 | | }, [INFO] [stderr] 522 | | Ok(_) => (), [INFO] [stderr] 523 | | }; [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 517 | if let Err(why) = sendbytes(&listener,&serverhost,&replybytes,&padpath) { [INFO] [stderr] 518 | println!("Encrypting message failed - {}",why.description()); [INFO] [stderr] 519 | continue 'operator; [INFO] [stderr] 520 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `teamech-embedded-template`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "cd00c9b9501fdd08a6f030aa4c04e5c58d50544c7980ea15ee74c887b37b89f1"` [INFO] running `"docker" "rm" "-f" "cd00c9b9501fdd08a6f030aa4c04e5c58d50544c7980ea15ee74c887b37b89f1"` [INFO] [stdout] cd00c9b9501fdd08a6f030aa4c04e5c58d50544c7980ea15ee74c887b37b89f1