grass/dev/strategy/api/
mock.rs1use crate::dev::strategy::{
2 alias::{MockAliasStrategy, SupportsAlias},
3 discovery::MockDiscoveryStrategy,
4 git::MockGitStrategy,
5 path::MockPathStrategy,
6};
7
8use super::{SupportsDiscovery, SupportsGit, SupportsPath};
9
10#[derive(Default)]
11pub struct MockApiStrategy {
12 alias_strategy: MockAliasStrategy,
13 discovery_strategy: MockDiscoveryStrategy,
14 git_strategy: MockGitStrategy,
15 path_strategy: MockPathStrategy,
16}
17
18impl MockApiStrategy {
19 pub fn new() -> Self {
20 Self::default()
21 }
22}
23
24impl SupportsAlias for MockApiStrategy {
25 type Strategy = MockAliasStrategy;
26
27 fn get_alias_strategy(&self) -> &Self::Strategy {
28 &self.alias_strategy
29 }
30}
31
32impl SupportsDiscovery for MockApiStrategy {
33 type Strategy = MockDiscoveryStrategy;
34
35 fn get_discovery_strategy(&self) -> &Self::Strategy {
36 &self.discovery_strategy
37 }
38}
39
40impl SupportsGit for MockApiStrategy {
41 type Strategy = MockGitStrategy;
42
43 fn get_git_strategy(&self) -> &Self::Strategy {
44 &self.git_strategy
45 }
46}
47
48impl SupportsPath for MockApiStrategy {
49 type Strategy = MockPathStrategy;
50
51 fn get_path_strategy(&self) -> &Self::Strategy {
52 &self.path_strategy
53 }
54}