ju_tcs_rust_23_5/
lib.rs

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