10个不稳定版本 (3个破坏性更新)
0.4.0 | 2023年5月26日 |
---|---|
0.3.1 | 2022年11月2日 |
0.2.4 | 2022年7月21日 |
0.2.3 | 2022年6月15日 |
0.1.9 | 2021年7月8日 |
#2330 在 Rust模式
每月39次下载
56KB
268 行
aliri_braid
增强和强化你的字符串
强类型API减少错误和混淆,Braid通过轻松创建字符串值的包装器来帮助实现这一点,确保每次使用都正确。
以下提供了braids的文档和实现示例,以及aliri_braid_examples
crate文档中。
用法
通过在结构定义上附加 #[braid]
来创建braid。宏将自动更新结构表示,以包装字符串并生成强类型的借用形式。
use aliri_braid::braid;
#[braid]
pub struct DatabaseName;
支持自定义字符串类型的braid,只要它们实现了预期的一组特性。如果没有指定,将使用当前命名空间中名为 String
的类型。
use aliri_braid::braid;
use compact_str::CompactString as String;
#[braid]
pub struct UserId;
一旦创建,braid可以作为强类型、不可变字符串传递。
fn take_strong_string(n: DatabaseName) {}
fn borrow_strong_string(n: &DatabaseNameRef) {}
let owned = DatabaseName::new(String::from("mongo"));
borrow_strong_string(&owned);
take_strong_string(owned);
braid也可以未指定类型,用于字符串接口。
fn take_raw_string(s: String) {}
fn borrow_raw_str(s: &str) {}
let owned = DatabaseName::new(String::from("mongo"));
borrow_raw_str(owned.as_str());
take_raw_string(owned.take());
有关更多信息,请参阅docs.rs上的文档。
依赖关系
~1–1.7MB
~35K SLoC