This crate provides simple unsigned wrappers to handle 1-based index.
let v1 = OneBasedU32::from_one_based(1).uwrap(); assert_eq!(v1.as_zero_based(), 0); let v2 = OneBasedU32::from_zero_based(0).uwrap(); assert_eq!(v2.as_one_based().get(), 1); assert_eq!(v1, v2);