Struct spring_batch_rs::CsvItemWriterBuilder
source · pub struct CsvItemWriterBuilder { /* private fields */ }Implementations§
source§impl CsvItemWriterBuilder
impl CsvItemWriterBuilder
sourcepub fn new() -> CsvItemWriterBuilder
pub fn new() -> CsvItemWriterBuilder
Examples found in repository?
examples/fake_person_generator.rs (line 15)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
fn main() -> Result<(), BatchError> {
let reader = PersonReaderBuilder::new().number_of_items(10).build();
let writer = CsvItemWriterBuilder::new()
.has_headers(false)
.from_path(temp_dir().join("example-fake-person.csv"));
let step: Step<Person, Person> = StepBuilder::new()
.reader(&reader)
.writer(&writer)
.chunk(1000)
.build();
step.execute();
Ok(())
}More examples
examples/transform_data_from_json_to_csv.rs (line 71)
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
fn main() -> std::io::Result<()> {
let path = Path::new("examples/data/persons.json");
let file = File::options()
.append(true)
.read(true)
.create(false)
.open(path)
.expect("Unable to open file");
let reader = JsonItemReaderBuilder::new().from_reader(file);
let processor = UpperCaseProcessor::default();
let writer = CsvItemWriterBuilder::new()
.has_headers(true)
.from_path(temp_dir().join("persons.csv"));
let step: Step<Person, Person> = StepBuilder::new()
.reader(&reader)
.processor(&processor)
.writer(&writer)
.chunk(2)
.build();
step.execute();
Ok(())
}pub fn delimiter(self, delimiter: u8) -> CsvItemWriterBuilder
sourcepub fn has_headers(self, yes: bool) -> CsvItemWriterBuilder
pub fn has_headers(self, yes: bool) -> CsvItemWriterBuilder
Examples found in repository?
examples/fake_person_generator.rs (line 16)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
fn main() -> Result<(), BatchError> {
let reader = PersonReaderBuilder::new().number_of_items(10).build();
let writer = CsvItemWriterBuilder::new()
.has_headers(false)
.from_path(temp_dir().join("example-fake-person.csv"));
let step: Step<Person, Person> = StepBuilder::new()
.reader(&reader)
.writer(&writer)
.chunk(1000)
.build();
step.execute();
Ok(())
}More examples
examples/transform_data_from_json_to_csv.rs (line 72)
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
fn main() -> std::io::Result<()> {
let path = Path::new("examples/data/persons.json");
let file = File::options()
.append(true)
.read(true)
.create(false)
.open(path)
.expect("Unable to open file");
let reader = JsonItemReaderBuilder::new().from_reader(file);
let processor = UpperCaseProcessor::default();
let writer = CsvItemWriterBuilder::new()
.has_headers(true)
.from_path(temp_dir().join("persons.csv"));
let step: Step<Person, Person> = StepBuilder::new()
.reader(&reader)
.processor(&processor)
.writer(&writer)
.chunk(2)
.build();
step.execute();
Ok(())
}sourcepub fn from_path<R: AsRef<Path>>(self, path: R) -> CsvItemWriter<File>
pub fn from_path<R: AsRef<Path>>(self, path: R) -> CsvItemWriter<File>
Examples found in repository?
examples/fake_person_generator.rs (line 17)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
fn main() -> Result<(), BatchError> {
let reader = PersonReaderBuilder::new().number_of_items(10).build();
let writer = CsvItemWriterBuilder::new()
.has_headers(false)
.from_path(temp_dir().join("example-fake-person.csv"));
let step: Step<Person, Person> = StepBuilder::new()
.reader(&reader)
.writer(&writer)
.chunk(1000)
.build();
step.execute();
Ok(())
}More examples
examples/transform_data_from_json_to_csv.rs (line 73)
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
fn main() -> std::io::Result<()> {
let path = Path::new("examples/data/persons.json");
let file = File::options()
.append(true)
.read(true)
.create(false)
.open(path)
.expect("Unable to open file");
let reader = JsonItemReaderBuilder::new().from_reader(file);
let processor = UpperCaseProcessor::default();
let writer = CsvItemWriterBuilder::new()
.has_headers(true)
.from_path(temp_dir().join("persons.csv"));
let step: Step<Person, Person> = StepBuilder::new()
.reader(&reader)
.processor(&processor)
.writer(&writer)
.chunk(2)
.build();
step.execute();
Ok(())
}sourcepub fn from_writer<W: Write>(self, wtr: W) -> CsvItemWriter<W>
pub fn from_writer<W: Write>(self, wtr: W) -> CsvItemWriter<W>
Serialize a single record using Serde.
Example
This shows how to serialize normal Rust structs as CSV records. The
fields of the struct are used to write a header row automatically.
(Writing the header row automatically can be disabled by building the
CSV writer with a WriterBuilder and
calling the has_headers method.)
#[derive(serde::Serialize)]
struct Row<'a> {
city: &'a str,
country: &'a str,
#[serde(rename = "popcount")]
population: u64,
}
fn example() -> Result<(), Box<dyn Error>> {
let wtr = CsvItemWriterBuilder::new()
.has_headers(true)
.from_writer(vec![]);
wtr.write(&Row {
city: "Boston",
country: "United States",
population: 4628910,
});
wtr.write(&Row {
city: "Concord",
country: "United States",
population: 42695,
});
let data = String::from_utf8(wtr.into_inner()?)?;
assert_eq!(data, "\
city,country,popcount
Boston,United States,4628910
Concord,United States,42695
");
Ok(())
}Trait Implementations§
source§impl Default for CsvItemWriterBuilder
impl Default for CsvItemWriterBuilder
source§fn default() -> CsvItemWriterBuilder
fn default() -> CsvItemWriterBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl RefUnwindSafe for CsvItemWriterBuilder
impl Send for CsvItemWriterBuilder
impl Sync for CsvItemWriterBuilder
impl Unpin for CsvItemWriterBuilder
impl UnwindSafe for CsvItemWriterBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more