use crate::Style;
pub trait ToCss {
fn to_css(&self) -> String;
fn to_css_pair(&self) -> Option<(String, String)> {
None
}
}
pub trait Merge<T> {
fn merge(&self, other: T) -> Self;
}
pub trait IntoStyle {
fn into_style(self) -> Style;
}
pub trait DefaultStyle {
fn default_style() -> Style;
}
pub trait ThemedStyle {
type Theme;
fn from_theme(theme: &Self::Theme) -> Self;
}
pub trait Responsive {
type Breakpoint;
fn at_breakpoint(&self, breakpoint: Self::Breakpoint) -> Self;
}
pub trait Variants {
type Variant;
fn from_variant(variant: Self::Variant) -> Self;
}
pub trait Sizable {
type Size;
fn from_size(size: Self::Size) -> Self;
}
pub trait ComputeValue {
type Output;
fn compute(&self) -> Self::Output;
}