caelix-core 0.0.9

Core primitives for the Caelix framework.
Documentation
use caelix_core::*;

#[derive(Clone)]
struct UserCreated;

struct SendWelcomeEmail;

impl Injectable for SendWelcomeEmail {
    fn create(_container: &Container) -> BoxFuture<'_, Result<Self>> {
        Box::pin(async { Ok(Self) })
    }
}

impl EventHandler<UserCreated> for SendWelcomeEmail {
    fn handle(&self, _event: UserCreated) -> BoxFuture<'_, Result<()>> {
        Box::pin(async { Ok(()) })
    }
}

struct AppModule;

impl Module for AppModule {
    fn register() -> ModuleMetadata {
        ModuleMetadata::new()
            .provider::<SendWelcomeEmail>()
            .event_handler::<SendWelcomeEmail>()
    }
}

fn main() {}