use asset;
#[derive(Debug)]
pub struct Stylesheet {
pub rules: Vec<Rule>,
}
#[derive(Debug)]
pub struct Rule {
pub selector: Selector,
pub declarations: Vec<Declaration>,
}
#[derive(Copy, Clone, Debug)]
pub enum SelectorState {
Default,
Focus,
Hover,
Creation
}
#[derive(Debug)]
pub struct Selector {
pub name: String,
pub state: SelectorState
}
#[derive(Debug)]
pub struct Declaration {
pub name: String,
pub value: Value,
}
#[derive(Debug, Clone)]
pub enum Value {
Length(f32, Unit),
Font(asset::FontData),
Image(asset::ImageData),
Keyword(KwValue),
}
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
pub enum KwValue {
Auto,
Expand,
Absolute,
Fit,
Repeat
}
#[derive(Debug, Clone)]
pub enum Unit {
Px,
}
impl Stylesheet {
#[inline]
pub fn new() -> Stylesheet {
Stylesheet {
rules: Vec::new()
}
}
}