Skip to content

Literal

Create a literal schema with literal(value). The value must match exactly.

use zod_rs::prelude::*;
use serde_json::json;
let schema = literal("active".to_string());
assert!(schema.safe_parse(&json!("active")).is_ok());
assert!(schema.safe_parse(&json!("inactive")).is_err());
use zod_rs::prelude::*;
use serde_json::json;
let schema = literal(42.0);
assert!(schema.safe_parse(&json!(42.0)).is_ok());
assert!(schema.safe_parse(&json!(43.0)).is_err());

Literals are commonly used with unions to create enum-like types:

use zod_rs::prelude::*;
use serde_json::json;
let schema = union()
.variant(literal("small".to_string()))
.variant(literal("medium".to_string()))
.variant(literal("large".to_string()));
assert!(schema.safe_parse(&json!("small")).is_ok());
assert!(schema.safe_parse(&json!("xl")).is_err());