Expand description
§vld-fake
Generate fake / test data that satisfies a vld JSON Schema.
§Quick start — typed API
use vld::prelude::*;
use vld_fake::FakeData;
vld::schema! {
#[derive(Debug)]
pub struct User {
pub name: String => vld::string().min(2).max(50),
pub email: String => vld::string().email(),
pub age: i64 => vld::number().int().min(18).max(99),
}
}
vld_fake::impl_fake!(User);
let user = User::fake();
assert!(user.name.len() >= 2);
assert!(user.email.contains('@'));
// Multiple
let users = User::fake_many(5);
// Reproducible
let u1 = User::fake_seeded(42);
let u2 = User::fake_seeded(42);
assert_eq!(u1.name, u2.name);§Low-level (untyped) API
use vld::prelude::*;
vld::schema! {
#[derive(Debug)]
pub struct User {
pub name: String => vld::string().min(2).max(50),
pub email: String => vld::string().email(),
pub age: i64 => vld::number().int().min(18).max(99),
}
}
let schema = User::json_schema();
let value = vld_fake::fake_value(&schema);
// value is a random serde_json::ValueModules§
Macros§
Structs§
Traits§
- Fake
Data - Trait for types that can generate fake instances of themselves.
Functions§
- fake_
json - Generate a JSON string conforming to the given JSON Schema.
- fake_
many - Generate
countrandom values from the same schema. - fake_
parsed - Generate a random value and parse it through
T::vld_parse_value, returning a fully validated typed instance. - fake_
value - Generate a single random
Valueconforming to the given JSON Schema. - fake_
value_ seeded - Generate with a specific seed for reproducible output.
- try_
fake_ parsed - Same as
fake_parsed, but returns aResultinstead of panicking.