#string #newtype #normalization #validation

aliri_braid_examples

演示aliri_braid库使用示例

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日

#2330Rust模式

每月39次下载

MIT/Apache

56KB
268

aliri_braid

Build Status

增强和强化你的字符串

强类型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