css_ast/
lib.rs

1#![deny(warnings)]
2mod functions;
3mod properties;
4mod rules;
5mod selector;
6mod specificity;
7mod stylerule;
8mod stylesheet;
9#[cfg(test)]
10mod test_helpers;
11mod traits;
12mod types;
13mod units;
14mod values;
15pub mod visit;
16
17use csskit_derives::Visitable;
18pub use functions::*;
19pub use properties::*;
20pub use rules::*;
21pub use selector::*;
22pub use stylerule::*;
23pub use stylesheet::*;
24pub use types::*;
25pub use units::*;
26pub use values::*;
27pub use visit::*;
28
29use css_parse::{
30	Cursor, CursorSink, Parse, Parser, Peek, Result as ParserResult, Span, ToCursors, ToSpan, diagnostics,
31};
32
33pub use css_parse::{Declaration, DeclarationValue};
34
35// TODO! - delete this when we're done ;)
36#[derive(Visitable, Default, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
37#[cfg_attr(feature = "serde", derive(serde::Serialize), serde(untagged))]
38#[visit(skip)]
39pub enum Todo {
40	#[default]
41	Todo,
42}
43
44impl<'a> Peek<'a> for Todo {
45	fn peek(_p: &Parser<'a>, _c: Cursor) -> bool {
46		false
47	}
48}
49
50impl<'a> Parse<'a> for Todo {
51	fn parse(p: &mut Parser<'a>) -> ParserResult<Self> {
52		Err(diagnostics::Unimplemented(Span::new(p.offset(), p.offset())))?
53	}
54}
55
56impl ToCursors for Todo {
57	fn to_cursors(&self, _: &mut impl CursorSink) {}
58}
59
60impl ToSpan for Todo {
61	fn to_span(&self) -> Span {
62		Span::DUMMY
63	}
64}