Clamped floating-point types.
Provides wrappers around floating-point values clamped to the range [0,1].
## Example
Basic usage:
```rust
use clampf::Clamp32; // The `Clamp64` type is also available
#[derive(Debug)]
pub struct Color {
red: Clamp32, // A value in the range [0,1]
green: Clamp32, // A value in the range [0,1]
blue: Clamp32, // A value in the range [0,1]
}
impl Color {
pub fn new(red: f32, green: f32, blue: f32) -> Self {
Color {
// Check the `red` value
red: Clamp32::new(red),
// Check the `green` value
green: Clamp32::new(green),
// Check the `blue` value
blue: Clamp32::new(blue),
}
}
pub fn set_red(&mut self, red: f32) {
// Check the `red` value
self.red.set(red);
}
}
```
## Usage without the standard library
For usage without the standard library you need exclude the `std` feature. This
can be done by editing `Cargo.toml`:
```toml
[dependencies.clampf]
version = "0.1"
default-features = false
```
or
```toml
[dependencies]
clampf = { version = "0.1", default-features = false }
```