2 releases

Uses old Rust 2015

0.1.1 Aug 1, 2018
0.1.0 Aug 1, 2018

#2312 in Data structures

MIT license

7KB
135 lines

Clamped floating-point types.

Provides wrappers around floating-point values clamped to the range [0,1].

Example

Basic usage:

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:

[dependencies.clampf]
version = "0.1"
default-features = false

or

[dependencies]
clampf = { version = "0.1", default-features = false }

Dependencies

~150KB