seq!

Build Status Latest Version

A seq! macro to repeat a fragment of source code and substitute into each repetition a sequential numeric counter.

toml [dependencies] seq-macro = "0.1"

```rust

![feature(procmacronon_items)]

use seq_macro::seq;

fn main() { let tuple = (1000, 100, 10); let mut sum = 0;

// Expands to:
//
//     sum += tuple.0;
//     sum += tuple.1;
//     sum += tuple.2;
//
// This cannot be written using an ordinary for-loop because elements of
// a tuple can only be accessed by their integer literal index, not by a
// variable.
seq!(N in 0..=2 {
    sum += tuple.N;
});

assert_eq!(sum, 1110);

} ```

There are just two more features to know about:

```rust use seq_macro::seq;

seq!(N in 64..=127 { #[derive(Debug)] enum Demo { // Expands to Variant64, Variant65, ... #( Variant#N, )* } });

fn main() { assert_eq!("Variant99", format!("{:?}", Demo::Variant99)); } ```

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.