10 个版本 (4 个重大更新)
0.5.2 | 2024年4月17日 |
---|---|
0.5.1 | 2024年3月29日 |
0.4.2 | 2024年2月25日 |
0.4.1 | 2024年1月22日 |
0.1.0 | 2023年11月21日 |
#1487 in Rust 模式
67KB
974 行
提供各种匿名类型结构
宏
struct!
: 创建匿名结构体的实例。
use anony::r#struct;
let items = vec![1, 3, 5];
let x = r#struct! {
color: "Red".to_owned(),
// move the `items` variable to the struct
items
};
assert_eq!(x.color, "Red");
assert_eq!(x.items, [1, 3, 5]);
tuple!
: 创建匿名元组的实例。
use anony::tuple;
let items = vec![1, 3, 5];
let x = tuple!("Red".to_owned(), items);
assert_eq!(x.0, "Red");
assert_eq!(x.1, [1, 3, 5]);
join!
和join_cyclic!
: 连接多个 future。需要future
功能。
use anony::join;
assert_eq!(join!(async { 2 }, async { "123" }).await, (2, "123"));
try_join!
和try_join_cyclic!
: 连接多个 future 并在 "break" 值上短路。需要future
功能。
use anony::try_join;
assert_eq!(try_join!(async { Some(2) }, async { Some("123") }).await, Some((2, "123")));
assert_eq!(try_join!(async { Some(2) }, async { None::<i32> }).await, None);
宏展开示例
https://github.com/discreaminant2809/anony/blob/master/examples/expansions.rs
功能
免责声明
此 crate 中的所有宏都是 100% 卫生的。
依赖项
~250–690KB
~16K SLoC