3个版本
使用旧的Rust 2015
0.1.2 | 2017年6月10日 |
---|---|
0.1.1 | 2016年8月18日 |
0.1.0 | 2016年8月17日 |
#14 in #colour
1,292 下载/每月
用于 25 个crate (11个直接使用)
38KB
545 行
易于使用的Rust CSS3颜色字符串解析器。
轻量级。
可靠(提供测试,处理所有错误以避免panic!)。
为了方便,不完全符合规范(见以下示例)
- 允许额外的空白字符
- 允许使用小数,而标准只允许百分比
仓库
https://github.com/7thSigil/css-color-parser-rs.git
原始js解析器
https://github.com/deanm/css-color-parser-js
Cargo.toml
[dependencies]
css-color-parser = "*"
示例
extern crate css_color_parser;
//...
use css_color_parser::Color as CssColor;
let transparent_black = CssColor { r: 0, g: 0, b: 0, a: 1.0 };
println!("{:?}", " rgba (255, 128, 12, 0.5)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 255, g: 128, b: 12, a: 0.5 }
println!("{:?}", "#fff".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 255, g: 255, b: 255, a: 1 }
println!("{:?}", "#ff0011".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 255, g: 0, b: 17, a: 1 }
println!("{:?}", "slateblue".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 106, g: 90, b: 205, a: 1 }
println!("{:?}", "blah".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 0, g: 0, b: 0, a: 0 } - ColorParseError
println!("{:?}", "ffffff".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 0, g: 0, b: 0, a: 0 } - ColorParseError
println!("{:?}", "hsla(900, 15%, 90%, 0.5)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 226, g: 233, b: 233, a: 0.5 }
println!("{:?}", "hsla(900, 15%, 90%)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 0, g: 0, b: 0, a: 0 } - ColorParseError
println!("{:?}", "hsl(900, 15%, 90%)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 226, g: 233, b: 233, a: 1 }
// NOTE: not spec compliant.
println!("{:?}", "hsl(900, 0.15, 90%)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 226, g: 233, b: 233, a: 1 }
(c) Katkov Oleksandr [email protected], 2016.
(c) Dean McNamee [email protected], 2012.
特此授予任何获得本软件及其相关文档文件(“软件”)副本的任何人,免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,没有任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定目的和不侵犯专利。在任何情况下,作者或版权所有者都不对任何索赔、损害或其他责任负责,无论这些责任是根据合同、侵权或其他方式引起的,也不论这些责任是否与软件或其使用或其它方式有关。
依赖关系
~15KB