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
#![deny(clippy::all)]
#![allow(clippy::large_enum_variant)]

//! AST definitions for CSS.
pub use self::{at_rule::*, base::*, selector::*, token::*, value::*};

mod at_rule;
mod base;
mod selector;
mod token;
mod value;

/// Returns true if the given value matches one of the given patterns.
///
/// The type of value and patterns should be identical.
///
/// # Examples
///
/// ```
/// use swc_atoms::JsWord;
/// use swc_atoms::js_word;
/// use swc_css_ast::*;
///
/// assert!(matches_eq_ignore_ascii_case!(JsWord::from("A"), "a"));
/// assert!(matches_eq_ignore_ascii_case!("A", "a"));
/// ```
#[macro_export]
macro_rules! matches_eq_ignore_ascii_case {
    ($value:expr, $($pat:expr),*) => {{
        $(
            $value.eq_ignore_ascii_case(&$pat) ||
        )* false
    }};
}

/// Returns true if the given value matches one of the given patterns.
///
/// The type of value and patterns should be identical.
///
/// # Examples
///
/// ```
/// use swc_atoms::JsWord;
/// use swc_atoms::js_word;
/// use swc_css_ast::*;
///
/// assert!(matches_eq!(JsWord::from("a"), "a"));
/// assert!(matches_eq!("a", "a"));
/// ```
#[macro_export]
macro_rules! matches_eq {
    ($value:expr, $($pat:expr),*) => {{
        $(
            $value == $pat ||
        )* false
    }};
}