comtrya_lib/steps/initializers/
mod.rs1mod command_found;
2pub use command_found::CommandFound;
3
4mod env_vars_set;
5mod file_exists;
6pub use env_vars_set::SetEnvVars;
7
8pub use file_exists::FileExists;
9
10#[allow(dead_code)]
11pub enum FlowControl {
12    Ensure(Box<dyn Initializer>),
13    SkipIf(Box<dyn Initializer>),
14}
15
16pub trait Initializer {
18    fn initialize(&self) -> anyhow::Result<bool>;
19}
20
21#[cfg(test)]
22pub(crate) mod test {
23    use super::Initializer;
24    use anyhow::anyhow;
25
26    #[derive(Clone, Debug)]
27    pub struct Echo(pub bool);
28
29    impl Initializer for Echo {
30        fn initialize(&self) -> anyhow::Result<bool> {
31            Ok(self.0)
32        }
33    }
34
35    #[derive(Clone, Debug)]
36    pub struct Error();
37
38    impl Initializer for Error {
39        fn initialize(&self) -> anyhow::Result<bool> {
40            Err(anyhow!("ErrorInitializer"))
41        }
42    }
43}