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}