spring_batch_rs/item/
logger.rs

1use std::fmt::Debug;
2
3use log::info;
4
5use crate::core::item::{ItemWriter, ItemWriterResult};
6
7/// A simple item writer that logs the items using the `log` crate.
8#[derive(Default)]
9pub struct LoggerWriter;
10
11impl<T: Debug> ItemWriter<T> for LoggerWriter {
12    /// Writes the items to the log.
13    ///
14    /// # Arguments
15    ///
16    /// * `items` - The items to be written.
17    ///
18    /// # Returns
19    ///
20    /// Returns `Ok(())` if the items were successfully written to the log.
21    ///
22    /// # Examples
23    ///
24    /// ```
25    /// use spring_batch_rs::item::logger::LoggerWriter;
26    /// use spring_batch_rs::core::item::{ItemWriter, ItemWriterResult};
27    ///
28    /// let writer = LoggerWriter::default();
29    /// let items = vec![1, 2, 3];
30    /// let result: ItemWriterResult = writer.write(&items);
31    /// assert!(result.is_ok());
32    /// ```
33    fn write(&self, items: &[T]) -> ItemWriterResult {
34        items.iter().for_each(|item| info!("Record:{:?}", item));
35        Ok(())
36    }
37}
38
39#[cfg(test)]
40mod tests {
41    use super::*;
42
43    #[test]
44    fn test_write() {
45        let writer = LoggerWriter::default();
46        let items = vec![1, 2, 3];
47        let result = writer.write(&items);
48        assert!(result.is_ok());
49    }
50}