pub trait Addressable<Addr> {
fn address(self) -> Addr;
}
pub trait Buildable {
type Error;
fn build() -> Result<Self, Self::Error>
where
Self: Sized;
}
pub trait Named {
fn name(&self) -> String;
fn slug(&self) -> String {
self.name().to_lowercase()
}
}
pub trait Temporal {
fn timestamp(&self) -> i64;
}