#tuple #macro #arceos #iterator

tuple_for_each

提供遍历元组结构体字段的宏和方法。

1 个不稳定版本

0.1.0 2024年7月17日

#272 in 过程宏

Download history 114/week @ 2024-07-14 3/week @ 2024-07-21

每月117次下载

GPL-3.0-or-later OR Apache-2…

8KB
118

tuple_for_each

crates.io Docs.rs CI

提供遍历元组结构体字段的宏和方法。

新增方法

  • is_empty() -> bool: 判断元组是否没有字段。
  • len() -> usize: 元组中项目的数量。

生成的宏

  • <tuple_name>_for_each!(xintuple{ ... })
  • <tuple_name>_enumerate!((i,x) intuple{ ... })

示例

use tuple_for_each::TupleForEach;

#[derive(TupleForEach)]
struct FooBar(u32, &'static str, bool);

let tup = FooBar(23, "hello", true);
assert!(!tup.is_empty());
assert_eq!(tup.len(), 3);

// prints "23", "hello", "true" line by line
foo_bar_for_each!(x in tup {
    println!("{}", x);
});

// prints "0: 23", "1: hello", "2: true" line by line
foo_bar_enumerate!((i, x) in tup {
    println!("{}: {}", i, x);
});

依赖关系

~250–690KB
~17K SLoC