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 模式

MIT/Apache

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]);
use anony::join;

assert_eq!(join!(async { 2 }, async { "123" }).await, (2, "123"));
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

功能

  • serde: 为匿名结构体和元组推导 Serialize。您的 crate 中必须存在 serde crate。
  • future: 启用 Future 匿名类型,例如 join!

免责声明

此 crate 中的所有宏都是 100% 卫生的。

依赖项

~250–690KB
~16K SLoC