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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
use crate::{Property, Rule, Text};
use swc_common::{ast_node, Span};
#[ast_node("MediaRule")]
pub struct MediaRule {
pub span: Span,
pub query: Box<MediaQuery>,
pub rules: Vec<Rule>,
}
#[ast_node]
pub enum MediaQuery {
#[tag("Text")]
Text(Text),
#[tag("AndMediaQuery")]
And(AndMediaQuery),
#[tag("OrMediaQuery")]
Or(OrMediaQuery),
#[tag("NotMediaQuery")]
Not(NotMediaQuery),
#[tag("OnlyMediaQuery")]
Only(OnlyMediaQuery),
#[tag("Property")]
Property(Property),
#[tag("CommaMediaQuery")]
Comma(CommaMediaQuery),
}
#[ast_node("AndMediaQuery")]
pub struct AndMediaQuery {
pub span: Span,
pub left: Box<MediaQuery>,
pub right: Box<MediaQuery>,
}
#[ast_node("OrMediaQuery")]
pub struct OrMediaQuery {
pub span: Span,
pub left: Box<MediaQuery>,
pub right: Box<MediaQuery>,
}
#[ast_node("NotMediaQuery")]
pub struct NotMediaQuery {
pub span: Span,
pub query: Box<MediaQuery>,
}
#[ast_node("OnlyMediaQuery")]
pub struct OnlyMediaQuery {
pub span: Span,
pub query: Box<MediaQuery>,
}
#[ast_node("CommaMediaQuery")]
pub struct CommaMediaQuery {
pub span: Span,
pub queries: Vec<MediaQuery>,
}