#[derive(Debug, Clone)]
pub enum CssRule
{
CounterStyle(CounterStyleAtRule),
Document(DocumentAtRule),
FontFace(FontFaceAtRule),
FontFeatureValues(FontFeatureValuesAtRule),
Import(ImportAtRule),
Keyframes(KeyframesAtRule),
Media(MediaAtRule),
Namespace(NamespaceAtRule),
Page(PageAtRule),
Style(StyleRule),
Supports(SupportsAtRule),
Viewport(ViewportAtRule),
}
impl ToCss for CssRule
{
fn to_css<W: fmt::Write>(&self, dest: &mut W) -> fmt::Result
{
use self::CssRule::*;
match *self
{
CounterStyle(ref rule) => rule.to_css(dest),
Document(ref rule) => rule.to_css(dest),
FontFace(ref rule) => rule.to_css(dest),
FontFeatureValues(ref rule) => rule.to_css(dest),
Import(ref rule) => rule.to_css(dest),
Keyframes(ref rule) => rule.to_css(dest),
Media(ref rule) => rule.to_css(dest),
Namespace(ref rule) => rule.to_css(dest),
Page(ref rule) => rule.to_css(dest),
Style(ref rule) => rule.to_css(dest),
Supports(ref rule) => rule.to_css(dest),
Viewport(ref rule) => rule.to_css(dest),
}
}
}
impl CssRule
{
#[inline(always)]
pub fn rule_type(&self) -> CssRuleType
{
use self::CssRule::*;
match *self
{
CounterStyle(_) => CssRuleType::CounterStyle,
Document(_) => CssRuleType::Document,
FontFace(_) => CssRuleType::FontFace,
FontFeatureValues(_) => CssRuleType::FontFeatureValues,
Import(_) => CssRuleType::Import,
Keyframes(_) => CssRuleType::Keyframes,
Media(_) => CssRuleType::Media,
Namespace(_) => CssRuleType::Namespace,
Page(_) => CssRuleType::Page,
Style(_) => CssRuleType::Style,
Supports(_) => CssRuleType::Supports,
Viewport(_) => CssRuleType::Viewport,
}
}
}