buzzard 0.1.0

A lightweight, DDD-first message bus framework for Rust — orchestrate commands, events, and projections with confidence.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
use anyhow::Result;
use serde::{Deserialize, Serialize};

pub trait Query: for<'de> Deserialize<'de> + Send + Sync {}
impl<T: for<'de> Deserialize<'de> + Send + Sync> Query for T {}

pub trait View: Serialize {}
impl<T: Serialize> View for T {}

pub trait Viewer<Q: Query> {
    fn view(&self, query: Q) -> impl Future<Output = Result<impl View>> + Send;
}