newtype_index!() { /* proc-macro */ }
Expand description

Creates a struct type S that can be used as an index with IndexVec and so on.

There are two ways of interacting with these indices:

  • The From impls are the preferred way. So you can do S::from(v) with a usize or u32. And you can convert back to an integer with u32::from(s).

  • Alternatively, you can use the methods S::new(v) and s.index() to create/return a value.

Internally, the index uses a u32, so the index must not exceed u32::MAX. You can also customize things like the Debug impl, what traits are derived, and so forth via the macro.