gato_core/kernel/application/
service_provider.rs1pub 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}