kaffix 0.0.1

Build your own microservice
Documentation
use serde::de::DeserializeOwned;

use crate::context::Context;

pub trait Service {
    type Message: DeserializeOwned;
    fn on_message(message: Self::Message, ctx: &Context);
    fn info() -> ServiceInfo;
}

pub struct ServiceInfo {
    pub name: &'static str,
    pub version_major: u16,
    pub version_minor: u16,
}

impl ServiceInfo {
    pub fn get_path(&self) -> String {
        format!("{}-v{}", self.name, self.version_major)
    }
}