polished_css/data_type/
number.rs1#[derive(Clone, Debug, PartialEq, polished_css_macros::Deref, polished_css_macros::Display)]
4pub struct Number(pub f64);
5
6impl Number {
7 #[must_use]
8 pub fn zero() -> Self {
9 Self(0.0)
10 }
11}
12
13pub trait NumberStorage: From<Number> {
14 #[must_use]
15 fn number(value: f64) -> Self
16 where
17 Self: Sized,
18 {
19 Self::from(Number(value))
20 }
21
22 #[must_use]
23 fn zero() -> Self
24 where
25 Self: Sized,
26 {
27 Self::from(Number(0.0))
28 }
29}
30
31#[cfg(test)]
32mod test {
33 #[test]
34 fn display() {
35 assert_eq!(super::Number(13.37).to_string(), String::from("13.37"));
36 assert_eq!(super::Number(-100.0).to_string(), String::from("-100"));
37 assert_eq!(super::Number::zero().to_string(), String::from("0"));
38 }
39}