num-traits
num-traits copied to clipboard
Consider a trait for NonZero* integers
I wanted a trait to identify NonZero* integers (eg NonZeroU32) and my first thought was this crate. I didn't seem a trait for them.
In my very specific use case, I actually need a trait that relates the zero and non-zero unsigned integers. Of course, I can trivially create one, but this seems more useful in this pseudo-standard Rust crate.
For example:-
trait NonZeroInteger
{
}
impl NonZeroInteger for NonZeroU32
{
}
and possibly
trait Integer
{
type NonZeroInteger: NonZeroInteger
}
I suppose there's a debate to be had as to whether NonNull would also implement such a trait. I'd argue not - rather there should be a super trait of NonZero and a sub trait of NonZeroInteger - but that's quite arguable either way.
See #85
Also std::num::NonZero provides a generic solution