[INFO] updating cached repository nicdk/smtpd-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/nicdk/smtpd-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/nicdk/smtpd-rs" "work/ex/clippy-test-run/sources/stable/gh/nicdk/smtpd-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/nicdk/smtpd-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/nicdk/smtpd-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nicdk/smtpd-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nicdk/smtpd-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ebfd2595791b9fb88f8649bb4442139c3c7ebc0c [INFO] sha for GitHub repo nicdk/smtpd-rs: ebfd2595791b9fb88f8649bb4442139c3c7ebc0c [INFO] validating manifest of nicdk/smtpd-rs 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 nicdk/smtpd-rs 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 nicdk/smtpd-rs [INFO] finished frobbing nicdk/smtpd-rs [INFO] frobbed toml for nicdk/smtpd-rs written to work/ex/clippy-test-run/sources/stable/gh/nicdk/smtpd-rs/Cargo.toml [INFO] started frobbing nicdk/smtpd-rs [INFO] finished frobbing nicdk/smtpd-rs [INFO] frobbed toml for nicdk/smtpd-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nicdk/smtpd-rs/Cargo.toml [INFO] crate nicdk/smtpd-rs 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 nicdk/smtpd-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/nicdk/smtpd-rs:/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] 0e23086f7585818dfca47d59e544d780de0b9ff832e4c7d374e682bbc37a0ecc [INFO] running `"docker" "start" "-a" "0e23086f7585818dfca47d59e544d780de0b9ff832e4c7d374e682bbc37a0ecc"` [INFO] [stderr] Checking smtpd-rs v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/bin/receiver.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn handler(stream: &mut BufStream) -> io::Result<()> { [INFO] [stderr] 47 | | stream.write(b"220 hostname ESMTP smtpd-rs\n")?; [INFO] [stderr] 48 | | stream.flush()?; [INFO] [stderr] 49 | | let mut state = SmtpState::INIT; [INFO] [stderr] ... | [INFO] [stderr] 325 | | } [INFO] [stderr] 326 | | } [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | stream.write(b"220 hostname ESMTP smtpd-rs\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | stream.write(format!("555 5.5.2 Syntax error. - smtpd-rs\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:66:38 [INFO] [stderr] | [INFO] [stderr] 66 | stream.write(format!("555 5.5.2 Syntax error. - smtpd-rs\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"555 5.5.2 Syntax error. - smtpd-rs\n".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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:82:25 [INFO] [stderr] | [INFO] [stderr] 82 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | / match &_cmd { [INFO] [stderr] 89 | | &"HELO" => SmtpState::READY, [INFO] [stderr] 90 | | &"EHLO" => SmtpState::READY, [INFO] [stderr] 91 | | &"RSET" => SmtpState::READY, [INFO] [stderr] ... | [INFO] [stderr] 98 | | _ => SmtpState::INIT, [INFO] [stderr] 99 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 88 | match _cmd { [INFO] [stderr] 89 | "HELO" => SmtpState::READY, [INFO] [stderr] 90 | "EHLO" => SmtpState::READY, [INFO] [stderr] 91 | "RSET" => SmtpState::READY, [INFO] [stderr] 92 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 113 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:124:25 [INFO] [stderr] | [INFO] [stderr] 124 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:132:36 [INFO] [stderr] | [INFO] [stderr] 132 | if _from.to_uppercase().to_string() != "FROM:" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_from.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:143:25 [INFO] [stderr] | [INFO] [stderr] 143 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | / match &_cmd { [INFO] [stderr] 150 | | &"MAIL" => SmtpState::MAIL, [INFO] [stderr] 151 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 152 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 158 | | _ => SmtpState::READY, [INFO] [stderr] 159 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 149 | match _cmd { [INFO] [stderr] 150 | "MAIL" => SmtpState::MAIL, [INFO] [stderr] 151 | "RSET" => SmtpState::READY, [INFO] [stderr] 152 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:154:25 [INFO] [stderr] | [INFO] [stderr] 154 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:173:25 [INFO] [stderr] | [INFO] [stderr] 173 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:184:25 [INFO] [stderr] | [INFO] [stderr] 184 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:192:36 [INFO] [stderr] | [INFO] [stderr] 192 | if _to.to_uppercase().to_string() != "TO:" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_to.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:203:25 [INFO] [stderr] | [INFO] [stderr] 203 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:209:17 [INFO] [stderr] | [INFO] [stderr] 209 | / match &_cmd { [INFO] [stderr] 210 | | &"RCPT" => SmtpState::RCPT, [INFO] [stderr] 211 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 212 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 218 | | _ => SmtpState::MAIL, [INFO] [stderr] 219 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 209 | match _cmd { [INFO] [stderr] 210 | "RCPT" => SmtpState::RCPT, [INFO] [stderr] 211 | "RSET" => SmtpState::READY, [INFO] [stderr] 212 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:214:25 [INFO] [stderr] | [INFO] [stderr] 214 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:233:25 [INFO] [stderr] | [INFO] [stderr] 233 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:244:25 [INFO] [stderr] | [INFO] [stderr] 244 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:249:25 [INFO] [stderr] | [INFO] [stderr] 249 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:255:17 [INFO] [stderr] | [INFO] [stderr] 255 | / match &_cmd { [INFO] [stderr] 256 | | &"DATA" => SmtpState::DATA, [INFO] [stderr] 257 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 258 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 264 | | _ => SmtpState::RCPT, [INFO] [stderr] 265 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 255 | match _cmd { [INFO] [stderr] 256 | "DATA" => SmtpState::DATA, [INFO] [stderr] 257 | "RSET" => SmtpState::READY, [INFO] [stderr] 258 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:260:25 [INFO] [stderr] | [INFO] [stderr] 260 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:277:24 [INFO] [stderr] | [INFO] [stderr] 277 | if _l.trim().to_string() == "." { break; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `_l.trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:278:24 [INFO] [stderr] | [INFO] [stderr] 278 | if _l.trim().to_string() == ".." { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `_l.trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:289:21 [INFO] [stderr] | [INFO] [stderr] 289 | stream.write(format!("451 Reequested action aborted. FROM address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:289:34 [INFO] [stderr] | [INFO] [stderr] 289 | stream.write(format!("451 Reequested action aborted. FROM address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted. FROM address is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:293:21 [INFO] [stderr] | [INFO] [stderr] 293 | stream.write(format!("451 Reequested action aborted.RCPT address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:293:34 [INFO] [stderr] | [INFO] [stderr] 293 | stream.write(format!("451 Reequested action aborted.RCPT address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted.RCPT address is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:297:21 [INFO] [stderr] | [INFO] [stderr] 297 | stream.write(format!("451 Reequested action aborted. DATA context is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:297:34 [INFO] [stderr] | [INFO] [stderr] 297 | stream.write(format!("451 Reequested action aborted. DATA context is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted. DATA context is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:318:21 [INFO] [stderr] | [INFO] [stderr] 318 | stream.write(format!("250 OK\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | stream.write(format!("250 OK\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"250 OK\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bin/receiver.rs:328:22 [INFO] [stderr] | [INFO] [stderr] 328 | fn dispatch(command: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/bin/receiver.rs:342:34 [INFO] [stderr] | [INFO] [stderr] 342 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:349:38 [INFO] [stderr] | [INFO] [stderr] 349 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:369:34 [INFO] [stderr] | [INFO] [stderr] 369 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:376:38 [INFO] [stderr] | [INFO] [stderr] 376 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:393:26 [INFO] [stderr] | [INFO] [stderr] 393 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:402:26 [INFO] [stderr] | [INFO] [stderr] 402 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:409:26 [INFO] [stderr] | [INFO] [stderr] 409 | message: format!("Start mail input; end with .\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Start mail input; end with .\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:416:26 [INFO] [stderr] | [INFO] [stderr] 416 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:423:26 [INFO] [stderr] | [INFO] [stderr] 423 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:430:26 [INFO] [stderr] | [INFO] [stderr] 430 | message: format!("Closing connection. Good bye.\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Closing connection. Good bye.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:437:26 [INFO] [stderr] | [INFO] [stderr] 437 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:444:26 [INFO] [stderr] | [INFO] [stderr] 444 | message: format!(r"5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `r"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: aborting due to 21 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `smtpd-rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/bin/receiver.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn handler(stream: &mut BufStream) -> io::Result<()> { [INFO] [stderr] 47 | | stream.write(b"220 hostname ESMTP smtpd-rs\n")?; [INFO] [stderr] 48 | | stream.flush()?; [INFO] [stderr] 49 | | let mut state = SmtpState::INIT; [INFO] [stderr] ... | [INFO] [stderr] 325 | | } [INFO] [stderr] 326 | | } [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | stream.write(b"220 hostname ESMTP smtpd-rs\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | stream.write(format!("555 5.5.2 Syntax error. - smtpd-rs\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:66:38 [INFO] [stderr] | [INFO] [stderr] 66 | stream.write(format!("555 5.5.2 Syntax error. - smtpd-rs\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"555 5.5.2 Syntax error. - smtpd-rs\n".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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:82:25 [INFO] [stderr] | [INFO] [stderr] 82 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | / match &_cmd { [INFO] [stderr] 89 | | &"HELO" => SmtpState::READY, [INFO] [stderr] 90 | | &"EHLO" => SmtpState::READY, [INFO] [stderr] 91 | | &"RSET" => SmtpState::READY, [INFO] [stderr] ... | [INFO] [stderr] 98 | | _ => SmtpState::INIT, [INFO] [stderr] 99 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 88 | match _cmd { [INFO] [stderr] 89 | "HELO" => SmtpState::READY, [INFO] [stderr] 90 | "EHLO" => SmtpState::READY, [INFO] [stderr] 91 | "RSET" => SmtpState::READY, [INFO] [stderr] 92 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 113 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:124:25 [INFO] [stderr] | [INFO] [stderr] 124 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:132:36 [INFO] [stderr] | [INFO] [stderr] 132 | if _from.to_uppercase().to_string() != "FROM:" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_from.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:143:25 [INFO] [stderr] | [INFO] [stderr] 143 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | / match &_cmd { [INFO] [stderr] 150 | | &"MAIL" => SmtpState::MAIL, [INFO] [stderr] 151 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 152 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 158 | | _ => SmtpState::READY, [INFO] [stderr] 159 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 149 | match _cmd { [INFO] [stderr] 150 | "MAIL" => SmtpState::MAIL, [INFO] [stderr] 151 | "RSET" => SmtpState::READY, [INFO] [stderr] 152 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:154:25 [INFO] [stderr] | [INFO] [stderr] 154 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:173:25 [INFO] [stderr] | [INFO] [stderr] 173 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:184:25 [INFO] [stderr] | [INFO] [stderr] 184 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:192:36 [INFO] [stderr] | [INFO] [stderr] 192 | if _to.to_uppercase().to_string() != "TO:" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_to.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:203:25 [INFO] [stderr] | [INFO] [stderr] 203 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:209:17 [INFO] [stderr] | [INFO] [stderr] 209 | / match &_cmd { [INFO] [stderr] 210 | | &"RCPT" => SmtpState::RCPT, [INFO] [stderr] 211 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 212 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 218 | | _ => SmtpState::MAIL, [INFO] [stderr] 219 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 209 | match _cmd { [INFO] [stderr] 210 | "RCPT" => SmtpState::RCPT, [INFO] [stderr] 211 | "RSET" => SmtpState::READY, [INFO] [stderr] 212 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:214:25 [INFO] [stderr] | [INFO] [stderr] 214 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:233:25 [INFO] [stderr] | [INFO] [stderr] 233 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:244:25 [INFO] [stderr] | [INFO] [stderr] 244 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:249:25 [INFO] [stderr] | [INFO] [stderr] 249 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:255:17 [INFO] [stderr] | [INFO] [stderr] 255 | / match &_cmd { [INFO] [stderr] 256 | | &"DATA" => SmtpState::DATA, [INFO] [stderr] 257 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 258 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 264 | | _ => SmtpState::RCPT, [INFO] [stderr] 265 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 255 | match _cmd { [INFO] [stderr] 256 | "DATA" => SmtpState::DATA, [INFO] [stderr] 257 | "RSET" => SmtpState::READY, [INFO] [stderr] 258 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:260:25 [INFO] [stderr] | [INFO] [stderr] 260 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:277:24 [INFO] [stderr] | [INFO] [stderr] 277 | if _l.trim().to_string() == "." { break; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `_l.trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:278:24 [INFO] [stderr] | [INFO] [stderr] 278 | if _l.trim().to_string() == ".." { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `_l.trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:289:21 [INFO] [stderr] | [INFO] [stderr] 289 | stream.write(format!("451 Reequested action aborted. FROM address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:289:34 [INFO] [stderr] | [INFO] [stderr] 289 | stream.write(format!("451 Reequested action aborted. FROM address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted. FROM address is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:293:21 [INFO] [stderr] | [INFO] [stderr] 293 | stream.write(format!("451 Reequested action aborted.RCPT address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:293:34 [INFO] [stderr] | [INFO] [stderr] 293 | stream.write(format!("451 Reequested action aborted.RCPT address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted.RCPT address is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:297:21 [INFO] [stderr] | [INFO] [stderr] 297 | stream.write(format!("451 Reequested action aborted. DATA context is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:297:34 [INFO] [stderr] | [INFO] [stderr] 297 | stream.write(format!("451 Reequested action aborted. DATA context is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted. DATA context is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:318:21 [INFO] [stderr] | [INFO] [stderr] 318 | stream.write(format!("250 OK\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | stream.write(format!("250 OK\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"250 OK\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bin/receiver.rs:328:22 [INFO] [stderr] | [INFO] [stderr] 328 | fn dispatch(command: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/bin/receiver.rs:342:34 [INFO] [stderr] | [INFO] [stderr] 342 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:349:38 [INFO] [stderr] | [INFO] [stderr] 349 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:369:34 [INFO] [stderr] | [INFO] [stderr] 369 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:376:38 [INFO] [stderr] | [INFO] [stderr] 376 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:393:26 [INFO] [stderr] | [INFO] [stderr] 393 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:402:26 [INFO] [stderr] | [INFO] [stderr] 402 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:409:26 [INFO] [stderr] | [INFO] [stderr] 409 | message: format!("Start mail input; end with .\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Start mail input; end with .\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:416:26 [INFO] [stderr] | [INFO] [stderr] 416 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:423:26 [INFO] [stderr] | [INFO] [stderr] 423 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:430:26 [INFO] [stderr] | [INFO] [stderr] 430 | message: format!("Closing connection. Good bye.\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Closing connection. Good bye.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:437:26 [INFO] [stderr] | [INFO] [stderr] 437 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:444:26 [INFO] [stderr] | [INFO] [stderr] 444 | message: format!(r"5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `r"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: aborting due to 21 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `smtpd-rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/bin/receiver.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn handler(stream: &mut BufStream) -> io::Result<()> { [INFO] [stderr] 47 | | stream.write(b"220 hostname ESMTP smtpd-rs\n")?; [INFO] [stderr] 48 | | stream.flush()?; [INFO] [stderr] 49 | | let mut state = SmtpState::INIT; [INFO] [stderr] ... | [INFO] [stderr] 325 | | } [INFO] [stderr] 326 | | } [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | stream.write(b"220 hostname ESMTP smtpd-rs\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | stream.write(format!("555 5.5.2 Syntax error. - smtpd-rs\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:66:38 [INFO] [stderr] | [INFO] [stderr] 66 | stream.write(format!("555 5.5.2 Syntax error. - smtpd-rs\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"555 5.5.2 Syntax error. - smtpd-rs\n".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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:82:25 [INFO] [stderr] | [INFO] [stderr] 82 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | / match &_cmd { [INFO] [stderr] 89 | | &"HELO" => SmtpState::READY, [INFO] [stderr] 90 | | &"EHLO" => SmtpState::READY, [INFO] [stderr] 91 | | &"RSET" => SmtpState::READY, [INFO] [stderr] ... | [INFO] [stderr] 98 | | _ => SmtpState::INIT, [INFO] [stderr] 99 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 88 | match _cmd { [INFO] [stderr] 89 | "HELO" => SmtpState::READY, [INFO] [stderr] 90 | "EHLO" => SmtpState::READY, [INFO] [stderr] 91 | "RSET" => SmtpState::READY, [INFO] [stderr] 92 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 113 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:124:25 [INFO] [stderr] | [INFO] [stderr] 124 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:132:36 [INFO] [stderr] | [INFO] [stderr] 132 | if _from.to_uppercase().to_string() != "FROM:" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_from.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:143:25 [INFO] [stderr] | [INFO] [stderr] 143 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | / match &_cmd { [INFO] [stderr] 150 | | &"MAIL" => SmtpState::MAIL, [INFO] [stderr] 151 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 152 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 158 | | _ => SmtpState::READY, [INFO] [stderr] 159 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 149 | match _cmd { [INFO] [stderr] 150 | "MAIL" => SmtpState::MAIL, [INFO] [stderr] 151 | "RSET" => SmtpState::READY, [INFO] [stderr] 152 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:154:25 [INFO] [stderr] | [INFO] [stderr] 154 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:173:25 [INFO] [stderr] | [INFO] [stderr] 173 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:184:25 [INFO] [stderr] | [INFO] [stderr] 184 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:192:36 [INFO] [stderr] | [INFO] [stderr] 192 | if _to.to_uppercase().to_string() != "TO:" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_to.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:203:25 [INFO] [stderr] | [INFO] [stderr] 203 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:209:17 [INFO] [stderr] | [INFO] [stderr] 209 | / match &_cmd { [INFO] [stderr] 210 | | &"RCPT" => SmtpState::RCPT, [INFO] [stderr] 211 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 212 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 218 | | _ => SmtpState::MAIL, [INFO] [stderr] 219 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 209 | match _cmd { [INFO] [stderr] 210 | "RCPT" => SmtpState::RCPT, [INFO] [stderr] 211 | "RSET" => SmtpState::READY, [INFO] [stderr] 212 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:214:25 [INFO] [stderr] | [INFO] [stderr] 214 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:233:25 [INFO] [stderr] | [INFO] [stderr] 233 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:244:25 [INFO] [stderr] | [INFO] [stderr] 244 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:249:25 [INFO] [stderr] | [INFO] [stderr] 249 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:255:17 [INFO] [stderr] | [INFO] [stderr] 255 | / match &_cmd { [INFO] [stderr] 256 | | &"DATA" => SmtpState::DATA, [INFO] [stderr] 257 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 258 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 264 | | _ => SmtpState::RCPT, [INFO] [stderr] 265 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 255 | match _cmd { [INFO] [stderr] 256 | "DATA" => SmtpState::DATA, [INFO] [stderr] 257 | "RSET" => SmtpState::READY, [INFO] [stderr] 258 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:260:25 [INFO] [stderr] | [INFO] [stderr] 260 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:277:24 [INFO] [stderr] | [INFO] [stderr] 277 | if _l.trim().to_string() == "." { break; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `_l.trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:278:24 [INFO] [stderr] | [INFO] [stderr] 278 | if _l.trim().to_string() == ".." { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `_l.trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:289:21 [INFO] [stderr] | [INFO] [stderr] 289 | stream.write(format!("451 Reequested action aborted. FROM address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:289:34 [INFO] [stderr] | [INFO] [stderr] 289 | stream.write(format!("451 Reequested action aborted. FROM address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted. FROM address is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:293:21 [INFO] [stderr] | [INFO] [stderr] 293 | stream.write(format!("451 Reequested action aborted.RCPT address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:293:34 [INFO] [stderr] | [INFO] [stderr] 293 | stream.write(format!("451 Reequested action aborted.RCPT address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted.RCPT address is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:297:21 [INFO] [stderr] | [INFO] [stderr] 297 | stream.write(format!("451 Reequested action aborted. DATA context is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:297:34 [INFO] [stderr] | [INFO] [stderr] 297 | stream.write(format!("451 Reequested action aborted. DATA context is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted. DATA context is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:318:21 [INFO] [stderr] | [INFO] [stderr] 318 | stream.write(format!("250 OK\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | stream.write(format!("250 OK\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"250 OK\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bin/receiver.rs:328:22 [INFO] [stderr] | [INFO] [stderr] 328 | fn dispatch(command: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/bin/receiver.rs:342:34 [INFO] [stderr] | [INFO] [stderr] 342 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:349:38 [INFO] [stderr] | [INFO] [stderr] 349 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:369:34 [INFO] [stderr] | [INFO] [stderr] 369 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:376:38 [INFO] [stderr] | [INFO] [stderr] 376 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:393:26 [INFO] [stderr] | [INFO] [stderr] 393 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:402:26 [INFO] [stderr] | [INFO] [stderr] 402 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:409:26 [INFO] [stderr] | [INFO] [stderr] 409 | message: format!("Start mail input; end with .\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Start mail input; end with .\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:416:26 [INFO] [stderr] | [INFO] [stderr] 416 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:423:26 [INFO] [stderr] | [INFO] [stderr] 423 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:430:26 [INFO] [stderr] | [INFO] [stderr] 430 | message: format!("Closing connection. Good bye.\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Closing connection. Good bye.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:437:26 [INFO] [stderr] | [INFO] [stderr] 437 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:444:26 [INFO] [stderr] | [INFO] [stderr] 444 | message: format!(r"5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `r"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: aborting due to 21 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `smtpd-rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/bin/receiver.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn handler(stream: &mut BufStream) -> io::Result<()> { [INFO] [stderr] 47 | | stream.write(b"220 hostname ESMTP smtpd-rs\n")?; [INFO] [stderr] 48 | | stream.flush()?; [INFO] [stderr] 49 | | let mut state = SmtpState::INIT; [INFO] [stderr] ... | [INFO] [stderr] 325 | | } [INFO] [stderr] 326 | | } [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | stream.write(b"220 hostname ESMTP smtpd-rs\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | stream.write(format!("555 5.5.2 Syntax error. - smtpd-rs\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:66:38 [INFO] [stderr] | [INFO] [stderr] 66 | stream.write(format!("555 5.5.2 Syntax error. - smtpd-rs\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"555 5.5.2 Syntax error. - smtpd-rs\n".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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:82:25 [INFO] [stderr] | [INFO] [stderr] 82 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | / match &_cmd { [INFO] [stderr] 89 | | &"HELO" => SmtpState::READY, [INFO] [stderr] 90 | | &"EHLO" => SmtpState::READY, [INFO] [stderr] 91 | | &"RSET" => SmtpState::READY, [INFO] [stderr] ... | [INFO] [stderr] 98 | | _ => SmtpState::INIT, [INFO] [stderr] 99 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 88 | match _cmd { [INFO] [stderr] 89 | "HELO" => SmtpState::READY, [INFO] [stderr] 90 | "EHLO" => SmtpState::READY, [INFO] [stderr] 91 | "RSET" => SmtpState::READY, [INFO] [stderr] 92 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 113 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:124:25 [INFO] [stderr] | [INFO] [stderr] 124 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:132:36 [INFO] [stderr] | [INFO] [stderr] 132 | if _from.to_uppercase().to_string() != "FROM:" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_from.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:143:25 [INFO] [stderr] | [INFO] [stderr] 143 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | / match &_cmd { [INFO] [stderr] 150 | | &"MAIL" => SmtpState::MAIL, [INFO] [stderr] 151 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 152 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 158 | | _ => SmtpState::READY, [INFO] [stderr] 159 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 149 | match _cmd { [INFO] [stderr] 150 | "MAIL" => SmtpState::MAIL, [INFO] [stderr] 151 | "RSET" => SmtpState::READY, [INFO] [stderr] 152 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:154:25 [INFO] [stderr] | [INFO] [stderr] 154 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:173:25 [INFO] [stderr] | [INFO] [stderr] 173 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:184:25 [INFO] [stderr] | [INFO] [stderr] 184 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:192:36 [INFO] [stderr] | [INFO] [stderr] 192 | if _to.to_uppercase().to_string() != "TO:" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_to.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:203:25 [INFO] [stderr] | [INFO] [stderr] 203 | stream.write(b"disconnect.")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:209:17 [INFO] [stderr] | [INFO] [stderr] 209 | / match &_cmd { [INFO] [stderr] 210 | | &"RCPT" => SmtpState::RCPT, [INFO] [stderr] 211 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 212 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 218 | | _ => SmtpState::MAIL, [INFO] [stderr] 219 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 209 | match _cmd { [INFO] [stderr] 210 | "RCPT" => SmtpState::RCPT, [INFO] [stderr] 211 | "RSET" => SmtpState::READY, [INFO] [stderr] 212 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:214:25 [INFO] [stderr] | [INFO] [stderr] 214 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:233:25 [INFO] [stderr] | [INFO] [stderr] 233 | stream.write(b"555 5.5.2 Syntax error. - smtpd-rs")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:244:25 [INFO] [stderr] | [INFO] [stderr] 244 | stream.write(&_message.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:249:25 [INFO] [stderr] | [INFO] [stderr] 249 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bin/receiver.rs:255:17 [INFO] [stderr] | [INFO] [stderr] 255 | / match &_cmd { [INFO] [stderr] 256 | | &"DATA" => SmtpState::DATA, [INFO] [stderr] 257 | | &"RSET" => SmtpState::READY, [INFO] [stderr] 258 | | &"QUIT" => { [INFO] [stderr] ... | [INFO] [stderr] 264 | | _ => SmtpState::RCPT, [INFO] [stderr] 265 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 255 | match _cmd { [INFO] [stderr] 256 | "DATA" => SmtpState::DATA, [INFO] [stderr] 257 | "RSET" => SmtpState::READY, [INFO] [stderr] 258 | "QUIT" => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:260:25 [INFO] [stderr] | [INFO] [stderr] 260 | stream.write(b"disconnect.\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:277:24 [INFO] [stderr] | [INFO] [stderr] 277 | if _l.trim().to_string() == "." { break; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `_l.trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bin/receiver.rs:278:24 [INFO] [stderr] | [INFO] [stderr] 278 | if _l.trim().to_string() == ".." { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `_l.trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:289:21 [INFO] [stderr] | [INFO] [stderr] 289 | stream.write(format!("451 Reequested action aborted. FROM address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:289:34 [INFO] [stderr] | [INFO] [stderr] 289 | stream.write(format!("451 Reequested action aborted. FROM address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted. FROM address is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:293:21 [INFO] [stderr] | [INFO] [stderr] 293 | stream.write(format!("451 Reequested action aborted.RCPT address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:293:34 [INFO] [stderr] | [INFO] [stderr] 293 | stream.write(format!("451 Reequested action aborted.RCPT address is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted.RCPT address is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:297:21 [INFO] [stderr] | [INFO] [stderr] 297 | stream.write(format!("451 Reequested action aborted. DATA context is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:297:34 [INFO] [stderr] | [INFO] [stderr] 297 | stream.write(format!("451 Reequested action aborted. DATA context is empty.\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"451 Reequested action aborted. DATA context is empty.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/bin/receiver.rs:318:21 [INFO] [stderr] | [INFO] [stderr] 318 | stream.write(format!("250 OK\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | stream.write(format!("250 OK\n").as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"250 OK\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bin/receiver.rs:328:22 [INFO] [stderr] | [INFO] [stderr] 328 | fn dispatch(command: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/bin/receiver.rs:342:34 [INFO] [stderr] | [INFO] [stderr] 342 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:349:38 [INFO] [stderr] | [INFO] [stderr] 349 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:369:34 [INFO] [stderr] | [INFO] [stderr] 369 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:376:38 [INFO] [stderr] | [INFO] [stderr] 376 | message: format!("5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:393:26 [INFO] [stderr] | [INFO] [stderr] 393 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:402:26 [INFO] [stderr] | [INFO] [stderr] 402 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:409:26 [INFO] [stderr] | [INFO] [stderr] 409 | message: format!("Start mail input; end with .\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Start mail input; end with .\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:416:26 [INFO] [stderr] | [INFO] [stderr] 416 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:423:26 [INFO] [stderr] | [INFO] [stderr] 423 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:430:26 [INFO] [stderr] | [INFO] [stderr] 430 | message: format!("Closing connection. Good bye.\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Closing connection. Good bye.\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:437:26 [INFO] [stderr] | [INFO] [stderr] 437 | message: format!("2.1.0 OK - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"2.1.0 OK - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/receiver.rs:444:26 [INFO] [stderr] | [INFO] [stderr] 444 | message: format!(r"5.5.2 Syntax error. - smtpd-rs\n"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `r"5.5.2 Syntax error. - smtpd-rs\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: aborting due to 21 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `smtpd-rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "0e23086f7585818dfca47d59e544d780de0b9ff832e4c7d374e682bbc37a0ecc"` [INFO] running `"docker" "rm" "-f" "0e23086f7585818dfca47d59e544d780de0b9ff832e4c7d374e682bbc37a0ecc"` [INFO] [stdout] 0e23086f7585818dfca47d59e544d780de0b9ff832e4c7d374e682bbc37a0ecc