litcheck_lit/suite/registry/
mod.rs1mod default;
2
3pub use self::default::DefaultTestSuiteRegistry;
4
5use std::{path::Path, sync::Arc};
6
7use litcheck::diagnostics::DiagResult;
8
9use crate::{
10 suite::{TestSuite, TestSuiteKey},
11 test::Test,
12 Config,
13};
14
15pub trait TestSuiteRegistry: IntoIterator<Item = Arc<Test>> {
16 fn load(&mut self, config: &Config) -> DiagResult<()>;
18
19 fn is_empty(&self) -> bool;
21
22 fn num_suites(&self) -> usize;
24
25 fn num_tests(&self) -> usize;
27
28 fn size_of_suite(&self, id: &TestSuiteKey) -> usize;
30
31 fn get(&self, id: &TestSuiteKey) -> Arc<TestSuite>;
33
34 fn get_by_path(&self, path: &Path) -> Option<Arc<TestSuite>>;
36
37 fn tests(&self) -> impl Iterator<Item = Arc<Test>> + '_;
39
40 fn suites(&self) -> impl Iterator<Item = Arc<TestSuite>> + '_;
42}