pub unsafe trait ArrayLength<T>: Unsigned { type ArrayType; }
Trait making GenericArray work, marking types to be used as length of an array
GenericArray
Associated type representing the array type for the number