Crates.io | tuple_for_each |
lib.rs | tuple_for_each |
version | 0.1.0 |
source | src |
created_at | 2024-07-17 05:49:28.505319 |
updated_at | 2024-07-17 05:49:28.505319 |
description | Provides macros and methods to iterate over the fields of a tuple struct |
homepage | https://github.com/arceos-org/arceos |
repository | https://github.com/arceos-org/tuple_for_each |
max_upload_size | |
id | 1305848 |
size | 11,164 |
Provides macros and methods to iterate over the fields of a tuple struct.
Added methods:
is_empty() -> bool
: Whether the tuple has no field.len() -> usize
: Number of items in the tuple.Generated macros:
<tuple_name>_for_each!(x in tuple { ... })
<tuple_name>_enumerate!((i, x) in tuple { ... })
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);
});