evtxtools 1.12.1

tools for the analysis of evtx files
Documentation
use evtx::SerializedEvtxRecord;
use serde_json::Value;

use super::{SystemField, CsvRecord};


pub struct CsvRecordBuilder<'a> {
    system_fields: &'a Vec<SystemField>,
    delimiter: char,
}

impl<'a> From<&'a Vec<SystemField>> for CsvRecordBuilder<'a> {
    fn from(system_fields: &'a Vec<SystemField>) -> Self {
        Self {
            system_fields,
            delimiter: ';'
        }
    }
}

impl<'a> CsvRecordBuilder<'a> {
    pub fn build_from_record(&self, record: SerializedEvtxRecord<Value>) -> CsvRecord<'a> {
        CsvRecord {
            record,
            delimiter: self.delimiter,
            system_fields: self.system_fields
        }
    }

    pub fn with_delimiter(mut self, delimiter: char) -> Self {
        self.delimiter = delimiter;
        self
    }
}