From 659248d52ff9e6be4dad7c4555bd62899671ad55 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sat, 1 Aug 2020 19:15:55 +0200 Subject: =?UTF-8?q?Raw=20lengths=20=F0=9F=9A=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace unitless length with raw f64 and introduce length type with unit. --- src/syntax/func/maps.rs | 3 ++- src/syntax/func/values.rs | 4 ++-- src/syntax/tokens.rs | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/syntax') diff --git a/src/syntax/func/maps.rs b/src/syntax/func/maps.rs index 2ac70223..59159ae1 100644 --- a/src/syntax/func/maps.rs +++ b/src/syntax/func/maps.rs @@ -1,8 +1,9 @@ //! Deduplicating maps and keys for argument parsing. use crate::diagnostic::Diagnostics; +use crate::geom::Value4; use crate::layout::prelude::*; -use crate::length::{ScaleLength, Value4}; +use crate::length::ScaleLength; use crate::syntax::span::Spanned; use super::keys::*; use super::values::*; diff --git a/src/syntax/func/values.rs b/src/syntax/func/values.rs index 85891d5e..64d4d345 100644 --- a/src/syntax/func/values.rs +++ b/src/syntax/func/values.rs @@ -76,13 +76,13 @@ value!(Ident, "identifier", Expr::Ident(i) => i); value!(String, "string", Expr::Str(s) => s); value!(f64, "number", Expr::Number(n) => n); value!(bool, "bool", Expr::Bool(b) => b); -value!(Length, "length", Expr::Length(s) => s); +value!(Length, "length", Expr::Length(l) => l); value!(Tuple, "tuple", Expr::Tuple(t) => t); value!(Object, "object", Expr::Object(o) => o); value!(ScaleLength, "number or length", Expr::Length(length) => ScaleLength::Absolute(length), - Expr::Number(scale) => ScaleLength::Scaled(scale as f64), + Expr::Number(scale) => ScaleLength::Scaled(scale), ); /// A value type that matches [`Expr::Ident`] and [`Expr::Str`] and implements diff --git a/src/syntax/tokens.rs b/src/syntax/tokens.rs index 9bb95c97..4998ea19 100644 --- a/src/syntax/tokens.rs +++ b/src/syntax/tokens.rs @@ -534,6 +534,7 @@ pub fn is_identifier(string: &str) -> bool { #[cfg(test)] #[allow(non_snake_case)] mod tests { + use crate::length::Length; use super::super::test::check; use super::*; use Token::{ -- cgit v1.2.3