css_ast/
lib.rs

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