parcel_css/rules/
viewport.rs1use super::Location;
4use crate::declaration::DeclarationBlock;
5use crate::error::PrinterError;
6use crate::printer::Printer;
7use crate::traits::ToCss;
8use crate::vendor_prefix::VendorPrefix;
9
10#[derive(Debug, PartialEq, Clone)]
12#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13pub struct ViewportRule<'i> {
14 pub vendor_prefix: VendorPrefix,
16 #[cfg_attr(feature = "serde", serde(borrow))]
18 pub declarations: DeclarationBlock<'i>,
19 pub loc: Location,
21}
22
23impl<'i> ToCss for ViewportRule<'i> {
24 fn to_css<W>(&self, dest: &mut Printer<W>) -> Result<(), PrinterError>
25 where
26 W: std::fmt::Write,
27 {
28 dest.add_mapping(self.loc);
29 dest.write_char('@')?;
30 self.vendor_prefix.to_css(dest)?;
31 dest.write_str("viewport")?;
32 self.declarations.to_css_block(dest)
33 }
34}