This crate helps you to ensure the kind of floats you are using.
zero overhead: everything is checked at compile time.
(only try_from
adds a little overhead at runtime)
NaN
is rejected by all types.
The types provided by this crate are:
- [NonNaN
],[NonNaNFinite
], [NonZeroNonNaN
], [NonZeroNonNaNFinite
]
And their positive and negative counterparts:
- [Positive
],[PositiveFinite
], [StrictlyPositive
], [StrictlyPositiveFinite
]
- [Negative
],[NegativeFinite
], [StrictlyNegative
], [StrictlyNegativeFinite
]
By default all types are [f64
] but all can use [f32
] (e.g. like [Positive<f32>
]).
The following conversions are implemented:
- Between all the types of this crate
- From [f64
]
- From integers types (exept u128
and i128
)
- From NonZero*