From ea0273c531b7f09fabefd6bea68c7a99d42554de Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Mon, 13 Feb 2023 20:48:07 -0500 Subject: [PATCH] *: fix all warnings and update code --- examples/cookbook-read-basic.rs | 4 +- examples/cookbook-read-colon.rs | 4 +- examples/cookbook-read-no-headers.rs | 4 +- examples/cookbook-read-serde.rs | 5 +- examples/cookbook-write-basic.rs | 4 +- examples/cookbook-write-serde.rs | 4 +- examples/tutorial-error-02.rs | 3 +- examples/tutorial-error-03.rs | 4 +- examples/tutorial-error-04.rs | 4 +- examples/tutorial-perf-alloc-01.rs | 4 +- examples/tutorial-perf-alloc-02.rs | 4 +- examples/tutorial-perf-alloc-03.rs | 4 +- examples/tutorial-perf-serde-01.rs | 5 +- examples/tutorial-perf-serde-02.rs | 6 +- examples/tutorial-perf-serde-03.rs | 5 +- examples/tutorial-pipeline-pop-01.rs | 5 +- examples/tutorial-pipeline-search-01.rs | 5 +- examples/tutorial-pipeline-search-02.rs | 5 +- examples/tutorial-read-01.rs | 6 +- examples/tutorial-read-delimiter-01.rs | 4 +- examples/tutorial-read-headers-01.rs | 4 +- examples/tutorial-read-headers-02.rs | 4 +- examples/tutorial-read-serde-01.rs | 4 +- examples/tutorial-read-serde-02.rs | 4 +- examples/tutorial-read-serde-03.rs | 4 +- examples/tutorial-read-serde-04.rs | 5 +- examples/tutorial-read-serde-invalid-01.rs | 5 +- examples/tutorial-read-serde-invalid-02.rs | 5 +- examples/tutorial-write-01.rs | 4 +- examples/tutorial-write-02.rs | 5 +- examples/tutorial-write-delimiter-01.rs | 4 +- examples/tutorial-write-serde-01.rs | 4 +- examples/tutorial-write-serde-02.rs | 4 +- src/cookbook.rs | 25 ++-- src/deserializer.rs | 16 +-- src/tutorial.rs | 131 +++++++-------------- 36 files changed, 96 insertions(+), 221 deletions(-) diff --git a/examples/cookbook-read-basic.rs b/examples/cookbook-read-basic.rs index a69b0e2..c7d4c4a 100644 --- a/examples/cookbook-read-basic.rs +++ b/examples/cookbook-read-basic.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn example() -> Result<(), Box> { // Build the CSV reader and iterate over each record. diff --git a/examples/cookbook-read-colon.rs b/examples/cookbook-read-colon.rs index 457cff3..ce57095 100644 --- a/examples/cookbook-read-colon.rs +++ b/examples/cookbook-read-colon.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn example() -> Result<(), Box> { let mut rdr = diff --git a/examples/cookbook-read-no-headers.rs b/examples/cookbook-read-no-headers.rs index 29812cb..2c558fc 100644 --- a/examples/cookbook-read-no-headers.rs +++ b/examples/cookbook-read-no-headers.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn example() -> Result<(), Box> { let mut rdr = diff --git a/examples/cookbook-read-serde.rs b/examples/cookbook-read-serde.rs index 420e0f7..20a8399 100644 --- a/examples/cookbook-read-serde.rs +++ b/examples/cookbook-read-serde.rs @@ -1,6 +1,5 @@ -use std::error::Error; -use std::io; -use std::process; +#![allow(dead_code)] +use std::{error::Error, io, process}; use serde::Deserialize; diff --git a/examples/cookbook-write-basic.rs b/examples/cookbook-write-basic.rs index 199d94b..2c78d17 100644 --- a/examples/cookbook-write-basic.rs +++ b/examples/cookbook-write-basic.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn example() -> Result<(), Box> { let mut wtr = csv::Writer::from_writer(io::stdout()); diff --git a/examples/cookbook-write-serde.rs b/examples/cookbook-write-serde.rs index 54e85a5..b6c3cbb 100644 --- a/examples/cookbook-write-serde.rs +++ b/examples/cookbook-write-serde.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; use serde::Serialize; diff --git a/examples/tutorial-error-02.rs b/examples/tutorial-error-02.rs index e2b5dfe..c3fc191 100644 --- a/examples/tutorial-error-02.rs +++ b/examples/tutorial-error-02.rs @@ -1,5 +1,4 @@ -use std::io; -use std::process; +use std::{io, process}; fn main() { let mut rdr = csv::Reader::from_reader(io::stdin()); diff --git a/examples/tutorial-error-03.rs b/examples/tutorial-error-03.rs index 6bfcc7a..f2db45d 100644 --- a/examples/tutorial-error-03.rs +++ b/examples/tutorial-error-03.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn main() { if let Err(err) = run() { diff --git a/examples/tutorial-error-04.rs b/examples/tutorial-error-04.rs index 67eb4f2..272e134 100644 --- a/examples/tutorial-error-04.rs +++ b/examples/tutorial-error-04.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn main() { if let Err(err) = run() { diff --git a/examples/tutorial-perf-alloc-01.rs b/examples/tutorial-perf-alloc-01.rs index d3020cc..4099534 100644 --- a/examples/tutorial-perf-alloc-01.rs +++ b/examples/tutorial-perf-alloc-01.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result> { let mut rdr = csv::Reader::from_reader(io::stdin()); diff --git a/examples/tutorial-perf-alloc-02.rs b/examples/tutorial-perf-alloc-02.rs index a3099a1..fc7a8e5 100644 --- a/examples/tutorial-perf-alloc-02.rs +++ b/examples/tutorial-perf-alloc-02.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result> { let mut rdr = csv::Reader::from_reader(io::stdin()); diff --git a/examples/tutorial-perf-alloc-03.rs b/examples/tutorial-perf-alloc-03.rs index 08edf5a..4bbf167 100644 --- a/examples/tutorial-perf-alloc-03.rs +++ b/examples/tutorial-perf-alloc-03.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result> { let mut rdr = csv::Reader::from_reader(io::stdin()); diff --git a/examples/tutorial-perf-serde-01.rs b/examples/tutorial-perf-serde-01.rs index c64538b..6578152 100644 --- a/examples/tutorial-perf-serde-01.rs +++ b/examples/tutorial-perf-serde-01.rs @@ -1,6 +1,5 @@ -use std::error::Error; -use std::io; -use std::process; +#![allow(dead_code)] +use std::{error::Error, io, process}; use serde::Deserialize; diff --git a/examples/tutorial-perf-serde-02.rs b/examples/tutorial-perf-serde-02.rs index 44202f8..b510ee9 100644 --- a/examples/tutorial-perf-serde-02.rs +++ b/examples/tutorial-perf-serde-02.rs @@ -1,8 +1,6 @@ -use std::error::Error; -use std::io; -use std::process; - +#![allow(dead_code)] use serde::Deserialize; +use std::{error::Error, io, process}; #[derive(Debug, Deserialize)] #[serde(rename_all = "PascalCase")] diff --git a/examples/tutorial-perf-serde-03.rs b/examples/tutorial-perf-serde-03.rs index 8c8b5f2..1b9b5fa 100644 --- a/examples/tutorial-perf-serde-03.rs +++ b/examples/tutorial-perf-serde-03.rs @@ -1,6 +1,5 @@ -use std::error::Error; -use std::io; -use std::process; +#![allow(dead_code)] +use std::{error::Error, io, process}; use serde::Deserialize; diff --git a/examples/tutorial-pipeline-pop-01.rs b/examples/tutorial-pipeline-pop-01.rs index f10cd43..19ad986 100644 --- a/examples/tutorial-pipeline-pop-01.rs +++ b/examples/tutorial-pipeline-pop-01.rs @@ -1,7 +1,4 @@ -use std::env; -use std::error::Error; -use std::io; -use std::process; +use std::{env, error::Error, io, process}; use serde::{Deserialize, Serialize}; diff --git a/examples/tutorial-pipeline-search-01.rs b/examples/tutorial-pipeline-search-01.rs index 3bfb8ea..d2cf5c1 100644 --- a/examples/tutorial-pipeline-search-01.rs +++ b/examples/tutorial-pipeline-search-01.rs @@ -1,7 +1,4 @@ -use std::env; -use std::error::Error; -use std::io; -use std::process; +use std::{env, error::Error, io, process}; fn run() -> Result<(), Box> { // Get the query from the positional arguments. diff --git a/examples/tutorial-pipeline-search-02.rs b/examples/tutorial-pipeline-search-02.rs index ab03385..76c1045 100644 --- a/examples/tutorial-pipeline-search-02.rs +++ b/examples/tutorial-pipeline-search-02.rs @@ -1,7 +1,4 @@ -use std::env; -use std::error::Error; -use std::io; -use std::process; +use std::{env, error::Error, io, process}; fn run() -> Result<(), Box> { let query = match env::args().nth(1) { diff --git a/examples/tutorial-read-01.rs b/examples/tutorial-read-01.rs index 9fc9293..6d75f79 100644 --- a/examples/tutorial-read-01.rs +++ b/examples/tutorial-read-01.rs @@ -1,8 +1,4 @@ -use std::env; -use std::error::Error; -use std::ffi::OsString; -use std::fs::File; -use std::process; +use std::{env, error::Error, ffi::OsString, fs::File, process}; fn run() -> Result<(), Box> { let file_path = get_first_arg()?; diff --git a/examples/tutorial-read-delimiter-01.rs b/examples/tutorial-read-delimiter-01.rs index 10a93e1..8a5536b 100644 --- a/examples/tutorial-read-delimiter-01.rs +++ b/examples/tutorial-read-delimiter-01.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result<(), Box> { let mut rdr = csv::ReaderBuilder::new() diff --git a/examples/tutorial-read-headers-01.rs b/examples/tutorial-read-headers-01.rs index d5b1c7b..afd27da 100644 --- a/examples/tutorial-read-headers-01.rs +++ b/examples/tutorial-read-headers-01.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result<(), Box> { let mut rdr = diff --git a/examples/tutorial-read-headers-02.rs b/examples/tutorial-read-headers-02.rs index ddaa756..951473a 100644 --- a/examples/tutorial-read-headers-02.rs +++ b/examples/tutorial-read-headers-02.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result<(), Box> { let mut rdr = csv::Reader::from_reader(io::stdin()); diff --git a/examples/tutorial-read-serde-01.rs b/examples/tutorial-read-serde-01.rs index a073157..afc23f1 100644 --- a/examples/tutorial-read-serde-01.rs +++ b/examples/tutorial-read-serde-01.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result<(), Box> { let mut rdr = csv::Reader::from_reader(io::stdin()); diff --git a/examples/tutorial-read-serde-02.rs b/examples/tutorial-read-serde-02.rs index d9114fb..2cdcd91 100644 --- a/examples/tutorial-read-serde-02.rs +++ b/examples/tutorial-read-serde-02.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; // This introduces a type alias so that we can conveniently reference our // record type. diff --git a/examples/tutorial-read-serde-03.rs b/examples/tutorial-read-serde-03.rs index a4c31f0..022e246 100644 --- a/examples/tutorial-read-serde-03.rs +++ b/examples/tutorial-read-serde-03.rs @@ -1,7 +1,5 @@ use std::collections::HashMap; -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; // This introduces a type alias so that we can conveniently reference our // record type. diff --git a/examples/tutorial-read-serde-04.rs b/examples/tutorial-read-serde-04.rs index e01d355..796040c 100644 --- a/examples/tutorial-read-serde-04.rs +++ b/examples/tutorial-read-serde-04.rs @@ -1,6 +1,5 @@ -use std::error::Error; -use std::io; -use std::process; +#![allow(dead_code)] +use std::{error::Error, io, process}; // This lets us write `#[derive(Deserialize)]`. use serde::Deserialize; diff --git a/examples/tutorial-read-serde-invalid-01.rs b/examples/tutorial-read-serde-invalid-01.rs index 604b384..3ea836d 100644 --- a/examples/tutorial-read-serde-invalid-01.rs +++ b/examples/tutorial-read-serde-invalid-01.rs @@ -1,6 +1,5 @@ -use std::error::Error; -use std::io; -use std::process; +#![allow(dead_code)] +use std::{error::Error, io, process}; use serde::Deserialize; diff --git a/examples/tutorial-read-serde-invalid-02.rs b/examples/tutorial-read-serde-invalid-02.rs index 3723496..b4426cf 100644 --- a/examples/tutorial-read-serde-invalid-02.rs +++ b/examples/tutorial-read-serde-invalid-02.rs @@ -1,6 +1,5 @@ -use std::error::Error; -use std::io; -use std::process; +#![allow(dead_code)] +use std::{error::Error, io, process}; use serde::Deserialize; #[derive(Debug, Deserialize)] diff --git a/examples/tutorial-write-01.rs b/examples/tutorial-write-01.rs index 229470d..e72c826 100644 --- a/examples/tutorial-write-01.rs +++ b/examples/tutorial-write-01.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result<(), Box> { let mut wtr = csv::Writer::from_writer(io::stdout()); diff --git a/examples/tutorial-write-02.rs b/examples/tutorial-write-02.rs index 76b5755..692a123 100644 --- a/examples/tutorial-write-02.rs +++ b/examples/tutorial-write-02.rs @@ -1,7 +1,4 @@ -use std::env; -use std::error::Error; -use std::ffi::OsString; -use std::process; +use std::{env, error::Error, ffi::OsString, process}; fn run() -> Result<(), Box> { let file_path = get_first_arg()?; diff --git a/examples/tutorial-write-delimiter-01.rs b/examples/tutorial-write-delimiter-01.rs index 795fd0a..a8f3ceb 100644 --- a/examples/tutorial-write-delimiter-01.rs +++ b/examples/tutorial-write-delimiter-01.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result<(), Box> { let mut wtr = csv::WriterBuilder::new() diff --git a/examples/tutorial-write-serde-01.rs b/examples/tutorial-write-serde-01.rs index 595b31f..c6c4a97 100644 --- a/examples/tutorial-write-serde-01.rs +++ b/examples/tutorial-write-serde-01.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result<(), Box> { let mut wtr = csv::Writer::from_writer(io::stdout()); diff --git a/examples/tutorial-write-serde-02.rs b/examples/tutorial-write-serde-02.rs index 455de3a..8d298fd 100644 --- a/examples/tutorial-write-serde-02.rs +++ b/examples/tutorial-write-serde-02.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; use serde::Serialize; diff --git a/src/cookbook.rs b/src/cookbook.rs index a28dc72..1430375 100644 --- a/src/cookbook.rs +++ b/src/cookbook.rs @@ -31,9 +31,7 @@ stdout. ```no_run # //cookbook-read-basic.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn example() -> Result<(), Box> { // Build the CSV reader and iterate over each record. @@ -74,9 +72,8 @@ method. ```no_run # //cookbook-read-serde.rs -use std::error::Error; -use std::io; -use std::process; +# #![allow(dead_code)] +use std::{error::Error, io, process}; use serde::Deserialize; @@ -124,9 +121,7 @@ by `:` instead of `,`. ```no_run # //cookbook-read-colon.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn example() -> Result<(), Box> { let mut rdr = csv::ReaderBuilder::new() @@ -164,9 +159,7 @@ first record is not skipped. This example shows how to disable that setting. ```no_run # //cookbook-read-no-headers.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn example() -> Result<(), Box> { let mut rdr = csv::ReaderBuilder::new() @@ -201,9 +194,7 @@ This example shows how to write CSV data to stdout. ```no_run # //cookbook-write-basic.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn example() -> Result<(), Box> { let mut wtr = csv::Writer::from_writer(io::stdout()); @@ -241,9 +232,7 @@ headers are written automatically. ```no_run # //cookbook-write-serde.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; use serde::Serialize; diff --git a/src/deserializer.rs b/src/deserializer.rs index 4ee1a67..ee9cec8 100644 --- a/src/deserializer.rs +++ b/src/deserializer.rs @@ -30,7 +30,7 @@ pub fn deserialize_string_record<'de, D: Deserialize<'de>>( D::deserialize(&mut deser).map_err(|err| { Error::new(ErrorKind::Deserialize { pos: record.position().map(Clone::clone), - err: err, + err, }) }) } @@ -47,7 +47,7 @@ pub fn deserialize_byte_record<'de, D: Deserialize<'de>>( D::deserialize(&mut deser).map_err(|err| { Error::new(ErrorKind::Deserialize { pos: record.position().map(Clone::clone), - err: err, + err, }) }) } @@ -197,10 +197,7 @@ impl<'r> DeRecord<'r> for DeStringRecord<'r> { } fn error(&self, kind: DeserializeErrorKind) -> DeserializeError { - DeserializeError { - field: Some(self.field.saturating_sub(1)), - kind: kind, - } + DeserializeError { field: Some(self.field.saturating_sub(1)), kind } } fn infer_deserialize<'de, V: Visitor<'de>>( @@ -291,10 +288,7 @@ impl<'r> DeRecord<'r> for DeByteRecord<'r> { } fn error(&self, kind: DeserializeErrorKind) -> DeserializeError { - DeserializeError { - field: Some(self.field.saturating_sub(1)), - kind: kind, - } + DeserializeError { field: Some(self.field.saturating_sub(1)), kind } } fn infer_deserialize<'de, V: Visitor<'de>>( @@ -913,7 +907,7 @@ mod tests { struct Foo; #[derive(Deserialize, Debug, PartialEq)] - struct Bar {}; + struct Bar {} let got = de_headers::(&[], &[]); assert_eq!(got.unwrap(), Foo); diff --git a/src/tutorial.rs b/src/tutorial.rs index 9d5e607..7bce7c0 100644 --- a/src/tutorial.rs +++ b/src/tutorial.rs @@ -281,8 +281,7 @@ let's get rid of the panic and print an error message manually: ```no_run //tutorial-error-02.rs -use std::io; -use std::process; +use std::{io, process}; fn main() { let mut rdr = csv::Reader::from_reader(io::stdin()); @@ -320,9 +319,7 @@ error, which our `main` function can then inspect and decide what to do with. ```no_run //tutorial-error-03.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn main() { if let Err(err) = run() { @@ -360,9 +357,7 @@ special Rust language feature: the question mark. ```no_run //tutorial-error-04.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn main() { if let Err(err) = run() { @@ -416,11 +411,13 @@ path argument instead of stdin. ```no_run //tutorial-read-01.rs -use std::env; -use std::error::Error; -use std::ffi::OsString; -use std::fs::File; -use std::process; +use std::{ + env, + error::Error, + ffi::OsString, + fs::File, + process, +}; fn run() -> Result<(), Box> { let file_path = get_first_arg()?; @@ -524,9 +521,7 @@ produces terser examples.) ```no_run //tutorial-read-headers-01.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # fn run() -> Result<(), Box> { let mut rdr = csv::ReaderBuilder::new() @@ -565,9 +560,7 @@ method like so: ```no_run //tutorial-read-headers-02.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # fn run() -> Result<(), Box> { let mut rdr = csv::Reader::from_reader(io::stdin()); @@ -646,9 +639,7 @@ as seen in the following example: ```no_run //tutorial-read-delimiter-01.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # fn run() -> Result<(), Box> { let mut rdr = csv::ReaderBuilder::new() @@ -734,9 +725,7 @@ a lot of manual work. This next example shows how. ```no_run //tutorial-read-serde-01.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # fn run() -> Result<(), Box> { let mut rdr = csv::Reader::from_reader(io::stdin()); @@ -777,9 +766,7 @@ type: `(String, String, Option, f64, f64)`. ```no_run //tutorial-read-serde-02.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # // This introduces a type alias so that we can conveniently reference our // record type. @@ -831,9 +818,7 @@ a new `use` statement that imports `HashMap` from the standard library: ```no_run //tutorial-read-serde-03.rs use std::collections::HashMap; -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; // This introduces a type alias so that we can conveniently reference our // record type. @@ -889,9 +874,8 @@ how. Don't miss the new Serde imports! ```no_run //tutorial-read-serde-04.rs -use std::error::Error; -use std::io; -use std::process; +# #![allow(dead_code)] +# use std::{error::Error, io, process}; // This lets us write `#[derive(Deserialize)]`. use serde::Deserialize; @@ -1027,9 +1011,8 @@ Let's start by running our program from the previous section: ```no_run //tutorial-read-serde-invalid-01.rs -# use std::error::Error; -# use std::io; -# use std::process; +# #![allow(dead_code)] +# use std::{error::Error, io, process}; # # use serde::Deserialize; # @@ -1096,9 +1079,8 @@ to a `None` value, as shown in this next example: ```no_run //tutorial-read-serde-invalid-02.rs -# use std::error::Error; -# use std::io; -# use std::process; +# #![allow(dead_code)] +# use std::{error::Error, io, process}; # # use serde::Deserialize; #[derive(Debug, Deserialize)] @@ -1164,9 +1146,7 @@ Let's start with the most basic example: writing a few CSV records to `stdout`. ```no_run //tutorial-write-01.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result<(), Box> { let mut wtr = csv::Writer::from_writer(io::stdout()); @@ -1273,10 +1253,12 @@ of `stdout`: ```no_run //tutorial-write-02.rs -use std::env; -use std::error::Error; -use std::ffi::OsString; -use std::process; +use std::{ + env, + error::Error, + ffi::OsString, + process, +}; fn run() -> Result<(), Box> { let file_path = get_first_arg()?; @@ -1334,9 +1316,7 @@ Here's an example: ```no_run //tutorial-write-delimiter-01.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # fn run() -> Result<(), Box> { let mut wtr = csv::WriterBuilder::new() @@ -1390,9 +1370,7 @@ As with reading, let's start by seeing how we can serialize a Rust tuple. ```no_run //tutorial-write-serde-01.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # fn run() -> Result<(), Box> { let mut wtr = csv::Writer::from_writer(io::stdout()); @@ -1460,9 +1438,7 @@ shown in the example: ```no_run //tutorial-write-serde-02.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; use serde::Serialize; @@ -1589,10 +1565,7 @@ rows with a field that matches the query. ```no_run //tutorial-pipeline-search-01.rs -use std::env; -use std::error::Error; -use std::io; -use std::process; +use std::{env, error::Error, io, process}; fn run() -> Result<(), Box> { // Get the query from the positional arguments. @@ -1709,10 +1682,7 @@ change: ```no_run //tutorial-pipeline-search-02.rs -# use std::env; -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{env, error::Error, io, process}; # fn run() -> Result<(), Box> { let query = match env::args().nth(1) { @@ -1781,10 +1751,7 @@ Now here's the code: ```no_run //tutorial-pipeline-pop-01.rs -use std::env; -use std::error::Error; -use std::io; -use std::process; +# use std::{env, error::Error, io, process}; use serde::{Deserialize, Serialize}; @@ -1914,9 +1881,7 @@ adapting a previous example to count the number of records in ```no_run //tutorial-perf-alloc-01.rs -use std::error::Error; -use std::io; -use std::process; +use std::{error::Error, io, process}; fn run() -> Result> { let mut rdr = csv::Reader::from_reader(io::stdin()); @@ -1972,9 +1937,7 @@ shown in the next example: ```no_run //tutorial-perf-alloc-02.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # fn run() -> Result> { let mut rdr = csv::Reader::from_reader(io::stdin()); @@ -2055,9 +2018,7 @@ method. ```no_run //tutorial-perf-alloc-03.rs -# use std::error::Error; -# use std::io; -# use std::process; +# use std::{error::Error, io, process}; # fn run() -> Result> { let mut rdr = csv::Reader::from_reader(io::stdin()); @@ -2136,9 +2097,8 @@ example using Serde in a previous section: ```no_run //tutorial-perf-serde-01.rs -use std::error::Error; -use std::io; -use std::process; +# #![allow(dead_code)] +use std::{error::Error, io, process}; use serde::Deserialize; @@ -2205,10 +2165,8 @@ like: ```no_run //tutorial-perf-serde-02.rs -# use std::error::Error; -# use std::io; -# use std::process; -# +# #![allow(dead_code)] +# use std::{error::Error, io, process}; # use serde::Deserialize; # #[derive(Debug, Deserialize)] @@ -2292,9 +2250,8 @@ of `StringRecord`: ```no_run //tutorial-perf-serde-03.rs -# use std::error::Error; -# use std::io; -# use std::process; +# #![allow(dead_code)] +# use std::{error::Error, io, process}; # # use serde::Deserialize; #