nonneg-float

Crates.iononneg-float
lib.rsnonneg-float
version0.1.0
created_at2025-05-22 04:18:03.630648+00
updated_at2025-05-22 04:18:03.630648+00
descriptionA generic NonNegative float wrapper with compile-time checked macro.
homepage
repositoryhttps://github.com/martcpp/nonneg-float.git
max_upload_size
id1684757
size37,184
MORDECAI ETUKUDO (martcpp)

documentation

README

nonneg-float

A generic Rust crate providing a wrapper for non-negative floating-point numbers with a convenient macro for safe construction.

Features

  • Generic over any floating-point type (f32, f64, etc.) implementing num_traits::Float.
  • Ensures values are non-negative and finite.
  • Macro nonneg! for easy, safe instantiation with optional defaulting to zero.
  • Panics at runtime if negative values are used with the macro.

Usage

Add this to your Cargo.toml:

[dependencies]
nonneg-float = "0.1.0"
num-traits = "0.2"

Examples


fn main() {
    let a = nonneg!(f64);        // defaults to 0.0
    let b = nonneg!(5.5f64);     // from literal
    let c = nonneg!(f32, 3.14);  // explicit type and value

    println!("{}, {}, {}", a.get(), b.get(), c.get());
} 
Commit count: 0

cargo fmt