//! [`Repository`] — public dispatch surface for commands.
//!
//! The `Repository` is what application code holds. It hides the
//! routing (which actor gets the command, whether it's local or
//! sharded) and surfaces a clean async fn the user invokes per command.
use async_trait;
use Eventsourced;
use crate::;
/// Send commands to an aggregate; receive the events that resulted (or
/// the typed domain error if the command was rejected).
///
/// Implementations are produced by `CqrsPattern::builder().build().materialize()`
/// — users don't normally implement this trait by hand.