gato_core/kernel/application/
service_provider.rs

1pub trait Provider {
2    fn boot(&self) -> ();
3}
4
5pub struct ServiceProvider {
6    providers: Vec<Box<dyn Provider>>,
7}
8
9impl ServiceProvider {
10
11    pub fn new() -> ServiceProvider {
12        return ServiceProvider{ providers: Vec::new() };
13    }
14
15    pub fn boot(&self) -> () {
16        for provider in self.providers.iter() {
17            provider.boot();
18        }
19    }
20
21    pub fn register_provider(&mut self, provider: Box<dyn Provider>) -> () {
22        self.providers.push(provider);
23    }
24}