1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
mod model;
mod parse;
mod query;
pub use model::*;
pub use parse::*;
pub use query::*;

use std::collections::HashMap;
use string_cache::Atom;

/// The CSS document model
#[derive(Default, Debug, Clone)]
pub struct Fashion {
    nsmap: HashMap<Atom<html5ever::PrefixStaticSet>, Atom<html5ever::NamespaceStaticSet>>,
    rules: Vec<Rule>,
    declarations: Vec<DeclarationBlock>,
}

#[derive(Debug, Clone, PartialEq)]
enum Rule {
    Selector(Selector, usize),
    Namespace(String, String),
}

#[derive(Debug, Clone, PartialEq)]
struct DeclarationBlock {
    pub declarations: Vec<(String, Vec<Value>)>,
}