1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//! # Overview
//!
//! Rust library for parsing CSS color string as defined in the W3C's [CSS Color Module Level 4](https://www.w3.org/TR/css-color-4/).
//!
//! ## Supported Color Format
//!
//! * [Named colors](https://www.w3.org/TR/css-color-4/#named-colors)
//! * RGB hexadecimal (with and without `#` prefix)
//! + Short format `#rgb`
//! + Short format with alpha `#rgba`
//! + Long format `#rrggbb`
//! + Long format with alpha `#rrggbbaa`
//! * `rgb()` and `rgba()`
//! * `hsl()` and `hsla()`
//! * `hwb()`
//! * `lab()`
//! * `lch()`
//! * `oklab()`
//! * `oklch()`
//! * `hwba()`, `hsv()`, `hsva()` - not in CSS standard.
//!
//! ## Examples
//!
//! Using [`csscolorparser::parse()`](fn.parse.html) function.
//!
//! ```rust
//! # fn main() -> Result<(), Box<dyn core::error::Error>> {
//! let c = csscolorparser::parse("rgb(100%,0%,0%)")?;
//!
//! assert_eq!(c.to_array(), [1.0, 0.0, 0.0, 1.0]);
//! assert_eq!(c.to_rgba8(), [255, 0, 0, 255]);
//! assert_eq!(c.to_css_hex(), "#ff0000");
//! assert_eq!(c.to_css_rgb(), "rgb(255 0 0)");
//! # Ok(())
//! # }
//! ```
//!
//! Using `parse()` method on `&str`.
//!
//! ```rust
//! use csscolorparser::Color;
//! # fn main() -> Result<(), Box<dyn core::error::Error>> {
//!
//! let c: Color = "#ff00007f".parse()?;
//!
//! assert_eq!(c.to_rgba8(), [255, 0, 0, 127]);
//! assert_eq!(c.to_css_hex(), "#ff00007f");
//! # Ok(())
//! # }
//! ```
//!
//! ## Default Feature
//!
//! * `std`: Using the standard library.
//! * `named-colors`: Enables parsing from [named colors](https://www.w3.org/TR/css-color-4/#named-colors).
//!
//! ## Optional Features
//!
//! * `rust-rgb`: Enables converting from [`rgb`](https://crates.io/crates/rgb) crate types into `Color`.
//! * `cint`: Enables converting [`cint`](https://crates.io/crates/cint) crate types to and from `Color`.
//! * `serde`: Enables serializing (into HEX string) and deserializing (from any supported string color format) using [`serde`](https://serde.rs/) framework.
extern crate std;
extern crate alloc;
pub use Color;
pub use ParseColorError;
pub use parse;
pub use NAMED_COLORS;