use {
super::MediaList,
crate::domain::{CssRule, CssRules, HasCssRules},
cssparser::ToCss,
std::fmt,
};
#[derive(Debug, Clone)]
pub struct MediaAtRule {
pub media_queries: MediaList,
pub rules: CssRules,
}
impl HasCssRules for MediaAtRule {
#[inline(always)]
fn css_rules(&self) -> &CssRules {
&self.rules
}
#[inline(always)]
fn css_rules_mut(&mut self) -> &mut CssRules {
&mut self.rules
}
#[inline(always)]
fn css_rules_slice(&self) -> &[CssRule] {
&self.rules.0[..]
}
#[inline(always)]
fn css_rules_vec(&self) -> &Vec<CssRule> {
&self.rules.0
}
#[inline(always)]
fn css_rules_vec_mut(&mut self) -> &mut Vec<CssRule> {
&mut self.rules.0
}
}
impl ToCss for MediaAtRule {
fn to_css<W: fmt::Write>(&self, dest: &mut W) -> fmt::Result {
dest.write_str("@media ")?;
self.media_queries.to_css(dest)?;
dest.write_char('{')?;
self.rules.to_css(dest)?;
dest.write_char('}')
}
}