1use std::io::BufRead;
2
3pub fn head(n: usize, path: std::path::PathBuf) -> Vec<String> {
4 let file: std::fs::File = std::fs::File::open(path).expect("No such file");
5 let reader = std::io::BufReader::new(file);
6 let mut result: Vec<String> = Vec::new();
7 let mut id = 0;
8 for line in reader.lines() {
9 if id < n {
10 result.push(line.unwrap());
11 }
12 id += 1;
13 }
14 return result;
15}
16
17pub fn tail(n: usize, path: std::path::PathBuf,) -> Vec<String> {
18 let file: std::fs::File = std::fs::File::open(path).expect("No such file");
19 let reader = std::io::BufReader::new(file);
20 let mut result: Vec<String> = Vec::new();
21 for line in reader.lines() {
22 result.push(line.unwrap());
23 }
24 result.reverse();
25 let mut result_vector: Vec<String> = Vec::new();
26 for i in 0..n {
27 result_vector.push(result[i].clone());
28 }
29 result_vector.reverse();
30 return result_vector;
31}
32