blob: 9b9a8d973d4078c10565264a972f773f7a192b0f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
use crate::tutors::abstractions::tutor_repo::TutorRepo;
use crate::tutors::fs_tutor::FsTutor;
use std::{fs, path::PathBuf};
pub struct FsTutorRepo {
dir: PathBuf,
}
impl FsTutorRepo {
pub fn with_dir(path: impl Into<PathBuf>) -> Self {
Self { dir: path.into() }
}
}
impl TutorRepo for FsTutorRepo {
fn load(&self) -> impl IntoIterator<Item = FsTutor> {
let dirs = fs::read_dir(&self.dir).unwrap();
dirs.flatten()
.filter(|d| {
!d.path()
.file_stem()
.unwrap()
.to_str()
.unwrap_or_default()
.starts_with('.')
})
.map(|d| FsTutor::with_dir(d.path()))
}
}
|