Newtype offering some utility methods for zero-based indices
In order to keep the lengths of method names reasonable, several abbreviations have been used, namely
Examples
Base case
use zero_based_index::ZBI;
let zbi = ZBI(2usize);
assert_eq!(zbi.to_len(), Some(3));
Base case with zero_based_index::AsZBI
use zero_based_index::{ZBI, AsZBI};
let zbi = 2.as_zbi();
assert_eq!(zbi.to_len(), Some(3));
Corner case
use zero_based_index::ZBI;
let zbi = ZBI(usize::MAX);
assert_eq!(zbi.to_len(), None);