spcsv/
shared.rs

1use crate::{b_file, file_manager, BufReader};
2use std::ops::DerefMut;
3use std::sync::{Arc, Mutex};
4
5#[derive(Clone)]
6pub struct IShared {
7    pub paths: Vec<String>,
8    pub headers: String,
9}
10
11pub type MShared = Arc<Mutex<BufReader>>;
12
13pub trait Crate {
14    fn n(value: BufReader) -> Self;
15    fn get_headers(&self, file: &file_manager::File) -> String;
16}
17
18impl Crate for MShared {
19    fn n(value: BufReader) -> Self {
20        Arc::new(Mutex::new(value))
21    }
22
23    fn get_headers(&self, file: &file_manager::File) -> String {
24        crate::misc::read_n_lines(b_file!(self), file.header())
25    }
26}