color_parser/number/mod.rs
1use pex::{ParseResult, ParseState};
2
3use NumberOrPercentage::*;
4
5enum NumberOrPercentage {
6 Number(f32),
7 Percentage(f32),
8}
9
10/// `<alpha> = <number> | <percentage>`
11///
12/// - `<number>`: between `0` and `1`
13/// - `<percentage>`: between `0%` and `100%`
14///
15/// <https://www.w3.org/TR/css-color-4/#typedef-alpha-value>
16pub fn alpha_value(input: &str) -> ParseResult<f32> {
17 todo!()
18}
19
20/// `<float> = <number> | <percentage>`
21///
22/// - `<number>`: between `0` and `255`
23/// - `<percentage>`: between `0%` and `100%`
24pub fn float_value(input: &str) -> ParseResult<f32> {
25 todo!()
26}
27
28fn number_or_percentage(input: ParseState) -> ParseResult<NumberOrPercentage> {
29 todo!()
30}
31
32/// `<angle> = <number> <angle-measure>`
33///
34/// ### `<angle-measure>`
35/// - `deg`: Degrees, there are 360 degrees in a full circle.
36/// - `grad` Gradians, also known as "gons" or "grades". There are 400 gradians in a full circle.
37/// - `rad`: radians, there are 2π radians in a full circle.
38/// - `turn`: Turns, there is 1 turn in a full circle.
39///
40/// <https://www.w3.org/TR/css-values-4/#angle-value>
41pub fn angle_turn(input: ParseState) -> ParseResult<f32> {
42 todo!()
43}