Skip to content

Number

Create a number schema with number().

use zod_rs::prelude::*;
use serde_json::json;
let schema = number();
assert!(schema.safe_parse(&json!(42.5)).is_ok());
assert!(schema.safe_parse(&json!("42")).is_err());
let schema = number().min(0.0).max(100.0);
assert!(schema.safe_parse(&json!(50)).is_ok());
assert!(schema.safe_parse(&json!(-1)).is_err());
let schema = number().int();
assert!(schema.safe_parse(&json!(42)).is_ok());
assert!(schema.safe_parse(&json!(42.5)).is_err());
let schema = number().positive();
assert!(schema.safe_parse(&json!(1)).is_ok());
assert!(schema.safe_parse(&json!(0)).is_err());
let schema = number().nonnegative();
assert!(schema.safe_parse(&json!(0)).is_ok());
assert!(schema.safe_parse(&json!(-1)).is_err());
let schema = number().negative();
assert!(schema.safe_parse(&json!(-1)).is_ok());
let schema = number().nonpositive();
assert!(schema.safe_parse(&json!(0)).is_ok());
let schema = number().finite();
assert!(schema.safe_parse(&json!(42.0)).is_ok());
#[derive(ZodSchema)]
struct Product {
#[zod(min(0.0), nonnegative)]
price: f64,
#[zod(min(0.0), max(1000.0), int)]
quantity: u32,
}