csv_utility 0.1.1

CLI to map csv files and some other utilities.
use seahorse::Context;
use std::fs::File;
use csv::{ReaderBuilder, Writer, Reader, StringRecord};

use crate::util::{get_file, create_output_file};

pub fn append(c: &Context) {
    let source_file_1: File = get_file(c, "source");
    let source_file_2: File = get_file(c, "destination");
    let output_file: File = create_output_file(c);

    let mut reader_1: Reader<File> = ReaderBuilder::new().delimiter(b';').from_reader(source_file_1);
    let mut reader_2: Reader<File> = ReaderBuilder::new().delimiter(b';').from_reader(source_file_2);
    let mut writer: Writer<File> = csv::WriterBuilder::new().delimiter(b';').from_writer(output_file);

    let header_1 = reader_1.headers().unwrap();
    let header_2 = reader_2.headers().unwrap();

    if header_1.eq(header_2) {
        for record in reader_1.records() {
            let record: StringRecord = record.unwrap();

            writer.write_record(&record);
        }

        for record in reader_2.records() {
            let record: StringRecord = record.unwrap();

            writer.write_record(&record);
        }

        writer.flush();

        println!("Appended two files.")
    } else {
        println!("Did not append files, because the files do not have the same header.")
    }
}