Skip to main content

takumi_css/style/properties/
order.rs

1use cssparser::Parser;
2use std::fmt;
3
4use crate::style::{
5  Animatable, CssSyntaxKind, CssToken, FromCss, MakeComputed, ParseResult, ToCss,
6};
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
9/// Represents the CSS `order` value used for flex/grid item ordering.
10pub struct Order(pub i32);
11
12impl MakeComputed for Order {}
13impl Animatable for Order {}
14
15impl<'i> FromCss<'i> for Order {
16  fn from_css(input: &mut Parser<'i, '_>) -> ParseResult<'i, Self> {
17    Ok(Self(input.expect_integer()?))
18  }
19
20  const VALID_TOKENS: &'static [CssToken] = &[CssToken::Syntax(CssSyntaxKind::Integer)];
21}
22
23impl ToCss for Order {
24  fn to_css<W: fmt::Write>(&self, dest: &mut W) -> fmt::Result {
25    write!(dest, "{}", self.0)
26  }
27}