11 个版本
0.3.4 | 2021 年 4 月 10 日 |
---|---|
0.3.3 | 2021 年 2 月 28 日 |
0.2.2 | 2021 年 2 月 21 日 |
0.1.2 | 2021 年 2 月 20 日 |
在 Rust 模式 中排名第 1782
每月下载量 821
用于 playwright
29KB
636 行代码(不包括注释)
STRONG —
Rust 的强类型化 String
Rust 是一种静态强类型系统编程语言。我们可以创建一个新的类型来封装原始数据。
struct Age(i32);
struct Email(String);
这里有一个问题,Rust 中有两种类型的字符串,很难同时为 String
和 &str
创建强类型。
STRONG 提供了两种类型:拥有所有权的 StrongBuf
和非固定大小的 Strong
。
use strong::{validators::Email, Strong, StrongBuf, Validator};
fn login(email: &Strong<Email>, password: &Strong<Password>) { .. }
let email: StrongBuf<Email> = ..
let password: StrongBuf<Password> = ..
login(&email, &password);
Email
需要 some_validators
功能。
入门
use strong::{validators::Email, Strong, StrongBuf, Validator};
enum Password {}
impl Validator for Password {
type Err = std::convert::Infallible;
}
let email: StrongBuf<Email> = StrongBuf::<Email>::validate("[email protected]".into()).unwrap();
let password: &Strong<Password> = Strong::<Password>::validate("b").unwrap();
缩写
使用 shorthand
功能,导出 Str
和 S
,它们可以替代 StrongBuf
和 Strong
。
let email: StrongBuf<Email> = StrongBuf::validate("foo".to_string()).unwrap();
let email: Str<Email> = Str::validate("foo".to_string()).unwrap();
许可协议
MIT 许可协议下授权(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
贡献
欢迎!
依赖关系
~0–1.4MB
~30K SLoC