pub type FieldMap = HashMap<Field, usize>;
a more general solution would be to use a variant rather than usize
pub struct FieldMap { /* private fields */ }