pub trait Style: Any + Replica + Upcast {
// Required method
fn assignability(&self) -> Assignability;
// Provided methods
fn id() -> Cow<'static, str>
where Self: Sized { ... }
fn resolve(styles: &Styles) -> Option<&Self>
where Self: Sized { ... }
fn resolve_or_default(styles: &Styles) -> Cow<'_, Self>
where Self: Default + Sized + Clone { ... }
}