From 0c40dd15498c5b3d07ef18a0de85cee4cb44af89 Mon Sep 17 00:00:00 2001 From: Adrian Wozniak Date: Thu, 30 Apr 2020 18:32:47 +0200 Subject: [PATCH] Add more css --- jirs-css/src/prop/mod.rs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/jirs-css/src/prop/mod.rs b/jirs-css/src/prop/mod.rs index 730c8f5d..df38d603 100644 --- a/jirs-css/src/prop/mod.rs +++ b/jirs-css/src/prop/mod.rs @@ -371,7 +371,7 @@ impl CssParser { // "clip" => Property::Clip, // "clip-path" => Property::ClipPath, "color" => Property::Color(self.parse_full_token()?), - // "column-count" => Property::ColumnCount, + "column-count" => Property::ColumnCount(self.parse_full_token()?), // "column-fill" => Property::ColumnFill, // "column-gap" => Property::ColumnGap, // "column-rule" => Property::ColumnRule, @@ -956,6 +956,27 @@ impl ParseToken for CssParser { } } +#[derive(Debug, PartialEq)] +pub enum ColumnCountProperty { + Auto, + Number(u32), +} + +impl Token for ColumnCountProperty {} + +impl ParseToken for CssParser { + fn parse_token(&mut self) -> ValueResult { + let p = match self.expect_consume()?.as_str() { + "auto" => ColumnCountProperty::Auto, + s @ _ => ColumnCountProperty::Number( + s.parse::() + .map_err(|_| format!("invalid column count"))?, + ), + }; + Ok(PropertyValue::Other(p)) + } +} + #[derive(Debug, PartialEq)] pub enum JustifyContentProperty { FlexStart, @@ -1325,7 +1346,7 @@ pub enum Property { Clip(String), ClipPath(String), Color(PropertyValue), - ColumnCount(String), + ColumnCount(PropertyValue), ColumnFill(String), ColumnGap(String), ColumnRule(String),