[][src]Macro pui_arena::newtype

macro_rules! newtype {
    (
        $(#[$meta:meta])*
        $( pub $(( $($vis:tt)* ))?  )? struct $name:ident;
        $(type Version = $version:ty;)?
    ) => { ... };
    (
        $(#[$meta:meta])*
        $( pub $(( $($vis:tt)* ))?  )? struct $name:ident($inner:ty);
        $(type Version = $version:ty;)?
    ) => { ... };
}

Create newtype of all the arenas in base

The module structure here is identical to crate::base, and you can look there for detailed documentation about the types. Each implementation of SlotMap will have all the methods from the corrosponding Arena, and those that take or produce generic keys will instead take/produce a Key.

In each module, you'll find an Arena newtype (with one public field), a VacantEntry newtype (again with one public field). These are thin wrappers around their generic counterparts. Their only serve the purpose of making error messages easier to parse, and use a default Key. You will also find a vareity of type aliases for various iterators, and for the default Key type for ease of use.

If you want to access the raw backing Arena/VacantEntry, you still can, it is the only public field of each scoped arena/vacant entry.