[{"data":1,"prerenderedAt":1431},["ShallowReactive",2],{"navigation":3,"\u002Fintegrations\u002Fcodegen\u002Ffake":335,"\u002Fintegrations\u002Fcodegen\u002Ffake-surround":1426},[4,27,73,95,121,135,305,331],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"MSRV","\u002Fgetting-started\u002Fmsrv","1.getting-started\u002F9.msrv",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Schemas","i-lucide-shapes","\u002Fschemas","2.schemas",[33,37,41,45,49,53,57,61,65,69],{"title":34,"path":35,"stem":36},"Strings","\u002Fschemas\u002Fstrings","2.schemas\u002F1.strings",{"title":38,"path":39,"stem":40},"Custom rules","\u002Fschemas\u002Frules","2.schemas\u002F10.rules",{"title":42,"path":43,"stem":44},"Numbers","\u002Fschemas\u002Fnumbers","2.schemas\u002F2.numbers",{"title":46,"path":47,"stem":48},"Booleans, literals and enums","\u002Fschemas\u002Fprimitives","2.schemas\u002F3.primitives",{"title":50,"path":51,"stem":52},"Dates and times","\u002Fschemas\u002Fdates","2.schemas\u002F4.dates",{"title":54,"path":55,"stem":56},"Collections","\u002Fschemas\u002Fcollections","2.schemas\u002F5.collections",{"title":58,"path":59,"stem":60},"Dynamic objects","\u002Fschemas\u002Fobjects","2.schemas\u002F6.objects",{"title":62,"path":63,"stem":64},"Modifiers","\u002Fschemas\u002Fmodifiers","2.schemas\u002F7.modifiers",{"title":66,"path":67,"stem":68},"Combinators","\u002Fschemas\u002Fcombinators","2.schemas\u002F8.combinators",{"title":70,"path":71,"stem":72},"Other types","\u002Fschemas\u002Fspecial-types","2.schemas\u002F9.special-types",{"title":74,"icon":75,"path":76,"stem":77,"children":78,"page":26},"Structs","i-lucide-braces","\u002Fstructs","3.structs",[79,83,87,91],{"title":80,"path":81,"stem":82},"schema! macro","\u002Fstructs\u002Fschema-macro","3.structs\u002F1.schema-macro",{"title":84,"path":85,"stem":86},"#[derive(Validate)]","\u002Fstructs\u002Fderive","3.structs\u002F2.derive",{"title":88,"path":89,"stem":90},"Parse vs validate","\u002Fstructs\u002Fparse-vs-validate","3.structs\u002F3.parse-vs-validate",{"title":92,"path":93,"stem":94},"Lenient parsing","\u002Fstructs\u002Flenient","3.structs\u002F4.lenient",{"title":96,"icon":97,"path":98,"stem":99,"children":100,"page":26},"Errors","i-lucide-triangle-alert","\u002Ferrors","4.errors",[101,105,109,113,117],{"title":102,"path":103,"stem":104},"Error model","\u002Ferrors\u002Foverview","4.errors\u002F1.overview",{"title":106,"path":107,"stem":108},"Issue codes","\u002Ferrors\u002Fissue-codes","4.errors\u002F2.issue-codes",{"title":110,"path":111,"stem":112},"Formatting","\u002Ferrors\u002Fformatting","4.errors\u002F3.formatting",{"title":114,"path":115,"stem":116},"Custom messages","\u002Ferrors\u002Fcustom-messages","4.errors\u002F4.custom-messages",{"title":118,"path":119,"stem":120},"Translations","\u002Ferrors\u002Fi18n","4.errors\u002F5.i18n",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":26},"OpenAPI","i-lucide-file-json","\u002Fopenapi","5.openapi",[127,131],{"title":128,"path":129,"stem":130},"JSON Schema and OpenAPI","\u002Fopenapi\u002Fjson-schema","5.openapi\u002F1.json-schema",{"title":132,"path":133,"stem":134},"Schema diff","\u002Fopenapi\u002Fdiff","5.openapi\u002F2.diff",{"title":136,"icon":137,"path":138,"stem":139,"children":140,"page":26},"Integrations","i-lucide-plug","\u002Fintegrations","6.integrations",[141,191,209,223,245,259,273,291],{"title":142,"icon":143,"path":144,"stem":145,"children":146,"page":26},"Web frameworks","i-lucide-globe","\u002Fintegrations\u002Fweb","6.integrations\u002F1.web",[147,151,155,159,163,167,171,175,179,183,187],{"title":148,"path":149,"stem":150},"Web adapters overview","\u002Fintegrations\u002Fweb\u002Foverview","6.integrations\u002F1.web\u002F01.overview",{"title":152,"path":153,"stem":154},"vld-axum","\u002Fintegrations\u002Fweb\u002Faxum","6.integrations\u002F1.web\u002F02.axum",{"title":156,"path":157,"stem":158},"vld-actix","\u002Fintegrations\u002Fweb\u002Factix","6.integrations\u002F1.web\u002F03.actix",{"title":160,"path":161,"stem":162},"vld-ntex","\u002Fintegrations\u002Fweb\u002Fntex","6.integrations\u002F1.web\u002F04.ntex",{"title":164,"path":165,"stem":166},"vld-poem","\u002Fintegrations\u002Fweb\u002Fpoem","6.integrations\u002F1.web\u002F05.poem",{"title":168,"path":169,"stem":170},"vld-rama","\u002Fintegrations\u002Fweb\u002Frama","6.integrations\u002F1.web\u002F06.rama",{"title":172,"path":173,"stem":174},"vld-rocket","\u002Fintegrations\u002Fweb\u002Frocket","6.integrations\u002F1.web\u002F07.rocket",{"title":176,"path":177,"stem":178},"vld-salvo","\u002Fintegrations\u002Fweb\u002Fsalvo","6.integrations\u002F1.web\u002F08.salvo",{"title":180,"path":181,"stem":182},"vld-tower","\u002Fintegrations\u002Fweb\u002Ftower","6.integrations\u002F1.web\u002F09.tower",{"title":184,"path":185,"stem":186},"vld-warp","\u002Fintegrations\u002Fweb\u002Fwarp","6.integrations\u002F1.web\u002F10.warp",{"title":188,"path":189,"stem":190},"vld-tonic","\u002Fintegrations\u002Fweb\u002Ftonic","6.integrations\u002F1.web\u002F11.tonic",{"title":192,"icon":193,"path":194,"stem":195,"children":196,"page":26},"OpenAPI and JSON Schema","i-lucide-file-code","\u002Fintegrations\u002Fopenapi","6.integrations\u002F2.openapi",[197,201,205],{"title":198,"path":199,"stem":200},"vld-utoipa","\u002Fintegrations\u002Fopenapi\u002Futoipa","6.integrations\u002F2.openapi\u002F1.utoipa",{"title":202,"path":203,"stem":204},"vld-schemars","\u002Fintegrations\u002Fopenapi\u002Fschemars","6.integrations\u002F2.openapi\u002F2.schemars",{"title":206,"path":207,"stem":208},"vld-aide","\u002Fintegrations\u002Fopenapi\u002Faide","6.integrations\u002F2.openapi\u002F3.aide",{"title":210,"icon":211,"path":212,"stem":213,"children":214,"page":26},"Codegen and test data","i-lucide-wand","\u002Fintegrations\u002Fcodegen","6.integrations\u002F3.codegen",[215,219],{"title":216,"path":217,"stem":218},"vld-ts","\u002Fintegrations\u002Fcodegen\u002Fts","6.integrations\u002F3.codegen\u002F1.ts",{"title":220,"path":221,"stem":222},"vld-fake","\u002Fintegrations\u002Fcodegen\u002Ffake","6.integrations\u002F3.codegen\u002F2.fake",{"title":224,"icon":225,"path":226,"stem":227,"children":228,"page":26},"Databases","i-lucide-database","\u002Fintegrations\u002Fdatabase","6.integrations\u002F4.database",[229,233,237,241],{"title":230,"path":231,"stem":232},"vld-sqlx","\u002Fintegrations\u002Fdatabase\u002Fsqlx","6.integrations\u002F4.database\u002F1.sqlx",{"title":234,"path":235,"stem":236},"vld-diesel","\u002Fintegrations\u002Fdatabase\u002Fdiesel","6.integrations\u002F4.database\u002F2.diesel",{"title":238,"path":239,"stem":240},"vld-sea","\u002Fintegrations\u002Fdatabase\u002Fsea-orm","6.integrations\u002F4.database\u002F3.sea-orm",{"title":242,"path":243,"stem":244},"vld-surrealdb","\u002Fintegrations\u002Fdatabase\u002Fsurrealdb","6.integrations\u002F4.database\u002F4.surrealdb",{"title":246,"icon":247,"path":248,"stem":249,"children":250,"page":26},"Messaging","i-lucide-mail","\u002Fintegrations\u002Fmessaging","6.integrations\u002F5.messaging",[251,255],{"title":252,"path":253,"stem":254},"vld-redis","\u002Fintegrations\u002Fmessaging\u002Fredis","6.integrations\u002F5.messaging\u002F1.redis",{"title":256,"path":257,"stem":258},"vld-lapin","\u002Fintegrations\u002Fmessaging\u002Flapin","6.integrations\u002F5.messaging\u002F2.lapin",{"title":260,"icon":261,"path":262,"stem":263,"children":264,"page":26},"Config and CLI","i-lucide-terminal","\u002Fintegrations\u002Fconfig-cli","6.integrations\u002F6.config-cli",[265,269],{"title":266,"path":267,"stem":268},"vld-config","\u002Fintegrations\u002Fconfig-cli\u002Fconfig","6.integrations\u002F6.config-cli\u002F1.config",{"title":270,"path":271,"stem":272},"vld-clap","\u002Fintegrations\u002Fconfig-cli\u002Fclap","6.integrations\u002F6.config-cli\u002F2.clap",{"title":274,"icon":275,"path":276,"stem":277,"children":278,"page":26},"UI frameworks","i-lucide-monitor","\u002Fintegrations\u002Fui","6.integrations\u002F7.ui",[279,283,287],{"title":280,"path":281,"stem":282},"vld-dioxus","\u002Fintegrations\u002Fui\u002Fdioxus","6.integrations\u002F7.ui\u002F1.dioxus",{"title":284,"path":285,"stem":286},"vld-leptos","\u002Fintegrations\u002Fui\u002Fleptos","6.integrations\u002F7.ui\u002F2.leptos",{"title":288,"path":289,"stem":290},"vld-tauri","\u002Fintegrations\u002Fui\u002Ftauri","6.integrations\u002F7.ui\u002F3.tauri",{"title":292,"icon":293,"path":294,"stem":295,"children":296,"page":26},"Shared crates","i-lucide-package","\u002Fintegrations\u002Fshared","6.integrations\u002F8.shared",[297,301],{"title":298,"path":299,"stem":300},"vld-http-common","\u002Fintegrations\u002Fshared\u002Fhttp-common","6.integrations\u002F8.shared\u002F1.http-common",{"title":302,"path":303,"stem":304},"vld-integration-common","\u002Fintegrations\u002Fshared\u002Fintegration-common","6.integrations\u002F8.shared\u002F2.integration-common",{"title":306,"icon":307,"path":308,"stem":309,"children":310,"page":26},"Guides","i-lucide-book-open","\u002Fguides","7.guides",[311,315,319,323,327],{"title":312,"path":313,"stem":314},"Migration","\u002Fguides\u002Fmigration","7.guides\u002F1.migration",{"title":316,"path":317,"stem":318},"Security notes","\u002Fguides\u002Fsecurity","7.guides\u002F2.security",{"title":320,"path":321,"stem":322},"Performance","\u002Fguides\u002Fperformance","7.guides\u002F3.performance",{"title":324,"path":325,"stem":326},"Contributing","\u002Fguides\u002Fcontributing","7.guides\u002F4.contributing",{"title":328,"path":329,"stem":330},"FAQ","\u002Fguides\u002Ffaq","7.guides\u002F5.faq",{"title":332,"path":333,"stem":334},"Changelog","\u002Fchangelog","9.changelog",{"id":336,"title":220,"body":337,"description":1412,"extension":1413,"links":1414,"meta":1423,"navigation":526,"path":221,"seo":1424,"stem":222,"__hash__":1425},"docs\u002F6.integrations\u002F3.codegen\u002F2.fake.md",{"type":338,"value":339,"toc":1406},"minimark",[340,369,374,467,478,482,1157,1161,1298,1302,1402],[341,342,343,346,347,350,351,354,355,358,359,358,362,358,365,368],"p",{},[344,345,220],"code",{}," walks a JSON Schema (from a vld type or written by hand) and produces values that satisfy it: formats, patterns, length and numeric bounds, ",[344,348,349],{},"multipleOf",", array and object counts, unions, tuples and ",[344,352,353],{},"$ref","s. Field names drive realistic values (",[344,356,357],{},"email",", ",[344,360,361],{},"city",[344,363,364],{},"first_name",[344,366,367],{},"sku",", …) when no format is set. Use it for fixtures, seed scripts, mock responses and property tests.",[370,371,373],"h2",{"id":372},"install","Install",[375,376,382],"pre",{"className":377,"code":378,"filename":379,"language":380,"meta":381,"style":381},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[dependencies]\nvld = { version = \"0.5\", features = [\"openapi\"] }\nvld-fake = \"0.5\"\n","Cargo.toml","toml","",[344,383,384,400,452],{"__ignoreMap":381},[385,386,389,393,397],"span",{"class":387,"line":388},"line",1,[385,390,392],{"class":391},"sMK4o","[",[385,394,396],{"class":395},"sBMFI","dependencies",[385,398,399],{"class":391},"]\n",[385,401,403,407,410,413,416,418,421,425,428,431,434,436,439,441,444,446,449],{"class":387,"line":402},2,[385,404,406],{"class":405},"sTEyZ","vld ",[385,408,409],{"class":391},"=",[385,411,412],{"class":391}," {",[385,414,415],{"class":405}," version ",[385,417,409],{"class":391},[385,419,420],{"class":391}," \"",[385,422,424],{"class":423},"sfazB","0.5",[385,426,427],{"class":391},"\"",[385,429,430],{"class":391},",",[385,432,433],{"class":405}," features ",[385,435,409],{"class":391},[385,437,438],{"class":391}," [",[385,440,427],{"class":391},[385,442,443],{"class":423},"openapi",[385,445,427],{"class":391},[385,447,448],{"class":391},"]",[385,450,451],{"class":391}," }\n",[385,453,455,458,460,462,464],{"class":387,"line":454},3,[385,456,457],{"class":405},"vld-fake ",[385,459,409],{"class":391},[385,461,420],{"class":391},[385,463,424],{"class":423},[385,465,466],{"class":391},"\"\n",[341,468,469,470,473,474,477],{},"Usually a ",[344,471,472],{},"[dev-dependencies]"," entry. No optional features. MSRV: 1.85 (see ",[475,476,23],"a",{"href":24},").",[370,479,481],{"id":480},"example","Example",[375,483,487],{"className":484,"code":485,"language":486,"meta":381,"style":381},"language-rust shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","use vld::prelude::*;\nuse vld_fake::FakeData;\n\nvld::schema! {\n    #[derive(Debug)]\n    pub struct User {\n        pub name:  String => vld::string().min(2).max(50),\n        pub email: String => vld::string().email(),\n        pub age:   i64    => vld::number().int().min(18).max(99),\n    }\n}\n\nvld_fake::impl_fake!(User);\n\nlet user = User::fake();                 \u002F\u002F validated through User::parse_value\nassert!(user.email.contains('@'));\n\nlet users = User::fake_many(5);\nassert_eq!(User::fake_seeded(42).name, User::fake_seeded(42).name);\n\n\u002F\u002F Untyped: any JSON Schema works\nlet schema = serde_json::json!({\n    \"type\": \"object\",\n    \"required\": [\"host\", \"port\"],\n    \"properties\": {\n        \"host\": { \"type\": \"string\", \"format\": \"ipv4\" },\n        \"port\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 65535 }\n    }\n});\nlet value = vld_fake::fake_value(&schema);\nassert!(value[\"port\"].as_i64().unwrap() >= 1);\n","rust",[344,488,489,507,522,528,543,561,576,625,653,701,707,713,718,737,742,767,801,806,830,873,878,884,905,928,961,975,1024,1082,1087,1093,1118],{"__ignoreMap":381},[385,490,491,495,498,501,504],{"class":387,"line":388},[385,492,494],{"class":493},"sbssI","use",[385,496,497],{"class":395}," vld",[385,499,500],{"class":391},"::",[385,502,503],{"class":395},"prelude",[385,505,506],{"class":391},"::*;\n",[385,508,509,511,514,516,519],{"class":387,"line":402},[385,510,494],{"class":493},[385,512,513],{"class":395}," vld_fake",[385,515,500],{"class":391},[385,517,518],{"class":395},"FakeData",[385,520,521],{"class":391},";\n",[385,523,524],{"class":387,"line":454},[385,525,527],{"emptyLinePlaceholder":526},true,"\n",[385,529,531,534,536,540],{"class":387,"line":530},4,[385,532,533],{"class":395},"vld",[385,535,500],{"class":391},[385,537,539],{"class":538},"s2Zo4","schema!",[385,541,542],{"class":391}," {\n",[385,544,546,549,552,555,558],{"class":387,"line":545},5,[385,547,548],{"class":391},"    #[",[385,550,551],{"class":405},"derive",[385,553,554],{"class":391},"(",[385,556,557],{"class":395},"Debug",[385,559,560],{"class":391},")]\n",[385,562,564,568,571,574],{"class":387,"line":563},6,[385,565,567],{"class":566},"spNyl","    pub",[385,569,570],{"class":566}," struct",[385,572,573],{"class":395}," User",[385,575,542],{"class":391},[385,577,579,582,585,588,591,594,596,598,601,604,607,609,612,614,617,619,622],{"class":387,"line":578},7,[385,580,581],{"class":566},"        pub",[385,583,584],{"class":405}," name",[385,586,587],{"class":391},":",[385,589,590],{"class":395},"  String",[385,592,593],{"class":391}," =>",[385,595,497],{"class":395},[385,597,500],{"class":391},[385,599,600],{"class":538},"string",[385,602,603],{"class":391},"().",[385,605,606],{"class":538},"min",[385,608,554],{"class":391},[385,610,611],{"class":493},"2",[385,613,477],{"class":391},[385,615,616],{"class":538},"max",[385,618,554],{"class":391},[385,620,621],{"class":493},"50",[385,623,624],{"class":391},"),\n",[385,626,628,630,633,635,638,640,642,644,646,648,650],{"class":387,"line":627},8,[385,629,581],{"class":566},[385,631,632],{"class":405}," email",[385,634,587],{"class":391},[385,636,637],{"class":395}," String",[385,639,593],{"class":391},[385,641,497],{"class":395},[385,643,500],{"class":391},[385,645,600],{"class":538},[385,647,603],{"class":391},[385,649,357],{"class":538},[385,651,652],{"class":391},"(),\n",[385,654,656,658,661,663,666,669,671,673,676,678,681,683,685,687,690,692,694,696,699],{"class":387,"line":655},9,[385,657,581],{"class":566},[385,659,660],{"class":405}," age",[385,662,587],{"class":391},[385,664,665],{"class":395},"   i64",[385,667,668],{"class":391},"    =>",[385,670,497],{"class":395},[385,672,500],{"class":391},[385,674,675],{"class":538},"number",[385,677,603],{"class":391},[385,679,680],{"class":538},"int",[385,682,603],{"class":391},[385,684,606],{"class":538},[385,686,554],{"class":391},[385,688,689],{"class":493},"18",[385,691,477],{"class":391},[385,693,616],{"class":538},[385,695,554],{"class":391},[385,697,698],{"class":493},"99",[385,700,624],{"class":391},[385,702,704],{"class":387,"line":703},10,[385,705,706],{"class":391},"    }\n",[385,708,710],{"class":387,"line":709},11,[385,711,712],{"class":391},"}\n",[385,714,716],{"class":387,"line":715},12,[385,717,527],{"emptyLinePlaceholder":526},[385,719,721,724,726,729,731,734],{"class":387,"line":720},13,[385,722,723],{"class":395},"vld_fake",[385,725,500],{"class":391},[385,727,728],{"class":538},"impl_fake!",[385,730,554],{"class":391},[385,732,733],{"class":395},"User",[385,735,736],{"class":391},");\n",[385,738,740],{"class":387,"line":739},14,[385,741,527],{"emptyLinePlaceholder":526},[385,743,745,748,751,753,755,757,760,763],{"class":387,"line":744},15,[385,746,747],{"class":566},"let",[385,749,750],{"class":405}," user ",[385,752,409],{"class":391},[385,754,573],{"class":395},[385,756,500],{"class":391},[385,758,759],{"class":538},"fake",[385,761,762],{"class":391},"();",[385,764,766],{"class":765},"sHwdD","                 \u002F\u002F validated through User::parse_value\n",[385,768,770,773,775,778,781,783,785,788,790,793,796,798],{"class":387,"line":769},16,[385,771,772],{"class":538},"assert!",[385,774,554],{"class":391},[385,776,777],{"class":405},"user",[385,779,780],{"class":391},".",[385,782,357],{"class":405},[385,784,780],{"class":391},[385,786,787],{"class":538},"contains",[385,789,554],{"class":391},[385,791,792],{"class":391},"'",[385,794,795],{"class":423},"@",[385,797,792],{"class":391},[385,799,800],{"class":391},"));\n",[385,802,804],{"class":387,"line":803},17,[385,805,527],{"emptyLinePlaceholder":526},[385,807,809,811,814,816,818,820,823,825,828],{"class":387,"line":808},18,[385,810,747],{"class":566},[385,812,813],{"class":405}," users ",[385,815,409],{"class":391},[385,817,573],{"class":395},[385,819,500],{"class":391},[385,821,822],{"class":538},"fake_many",[385,824,554],{"class":391},[385,826,827],{"class":493},"5",[385,829,736],{"class":391},[385,831,833,836,838,840,842,845,847,850,852,855,857,859,861,863,865,867,869,871],{"class":387,"line":832},19,[385,834,835],{"class":538},"assert_eq!",[385,837,554],{"class":391},[385,839,733],{"class":395},[385,841,500],{"class":391},[385,843,844],{"class":538},"fake_seeded",[385,846,554],{"class":391},[385,848,849],{"class":493},"42",[385,851,477],{"class":391},[385,853,854],{"class":405},"name",[385,856,430],{"class":391},[385,858,573],{"class":395},[385,860,500],{"class":391},[385,862,844],{"class":538},[385,864,554],{"class":391},[385,866,849],{"class":493},[385,868,477],{"class":391},[385,870,854],{"class":405},[385,872,736],{"class":391},[385,874,876],{"class":387,"line":875},20,[385,877,527],{"emptyLinePlaceholder":526},[385,879,881],{"class":387,"line":880},21,[385,882,883],{"class":765},"\u002F\u002F Untyped: any JSON Schema works\n",[385,885,887,889,892,894,897,899,902],{"class":387,"line":886},22,[385,888,747],{"class":566},[385,890,891],{"class":405}," schema ",[385,893,409],{"class":391},[385,895,896],{"class":395}," serde_json",[385,898,500],{"class":391},[385,900,901],{"class":538},"json!",[385,903,904],{"class":391},"({\n",[385,906,908,911,914,916,918,920,923,925],{"class":387,"line":907},23,[385,909,910],{"class":391},"    \"",[385,912,913],{"class":423},"type",[385,915,427],{"class":391},[385,917,587],{"class":391},[385,919,420],{"class":391},[385,921,922],{"class":423},"object",[385,924,427],{"class":391},[385,926,927],{"class":391},",\n",[385,929,931,933,936,938,940,942,944,947,949,951,953,956,958],{"class":387,"line":930},24,[385,932,910],{"class":391},[385,934,935],{"class":423},"required",[385,937,427],{"class":391},[385,939,587],{"class":391},[385,941,438],{"class":391},[385,943,427],{"class":391},[385,945,946],{"class":423},"host",[385,948,427],{"class":391},[385,950,430],{"class":391},[385,952,420],{"class":391},[385,954,955],{"class":423},"port",[385,957,427],{"class":391},[385,959,960],{"class":391},"],\n",[385,962,964,966,969,971,973],{"class":387,"line":963},25,[385,965,910],{"class":391},[385,967,968],{"class":423},"properties",[385,970,427],{"class":391},[385,972,587],{"class":391},[385,974,542],{"class":391},[385,976,978,981,983,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1010,1012,1014,1016,1019,1021],{"class":387,"line":977},26,[385,979,980],{"class":391},"        \"",[385,982,946],{"class":423},[385,984,427],{"class":391},[385,986,587],{"class":391},[385,988,412],{"class":391},[385,990,420],{"class":391},[385,992,913],{"class":423},[385,994,427],{"class":391},[385,996,587],{"class":391},[385,998,420],{"class":391},[385,1000,600],{"class":423},[385,1002,427],{"class":391},[385,1004,430],{"class":391},[385,1006,420],{"class":391},[385,1008,1009],{"class":423},"format",[385,1011,427],{"class":391},[385,1013,587],{"class":391},[385,1015,420],{"class":391},[385,1017,1018],{"class":423},"ipv4",[385,1020,427],{"class":391},[385,1022,1023],{"class":391}," },\n",[385,1025,1027,1029,1031,1033,1035,1037,1039,1041,1043,1045,1047,1050,1052,1054,1056,1059,1061,1063,1066,1068,1070,1073,1075,1077,1080],{"class":387,"line":1026},27,[385,1028,980],{"class":391},[385,1030,955],{"class":423},[385,1032,427],{"class":391},[385,1034,587],{"class":391},[385,1036,412],{"class":391},[385,1038,420],{"class":391},[385,1040,913],{"class":423},[385,1042,427],{"class":391},[385,1044,587],{"class":391},[385,1046,420],{"class":391},[385,1048,1049],{"class":423},"integer",[385,1051,427],{"class":391},[385,1053,430],{"class":391},[385,1055,420],{"class":391},[385,1057,1058],{"class":423},"minimum",[385,1060,427],{"class":391},[385,1062,587],{"class":391},[385,1064,1065],{"class":493}," 1",[385,1067,430],{"class":391},[385,1069,420],{"class":391},[385,1071,1072],{"class":423},"maximum",[385,1074,427],{"class":391},[385,1076,587],{"class":391},[385,1078,1079],{"class":493}," 65535",[385,1081,451],{"class":391},[385,1083,1085],{"class":387,"line":1084},28,[385,1086,706],{"class":391},[385,1088,1090],{"class":387,"line":1089},29,[385,1091,1092],{"class":391},"});\n",[385,1094,1096,1098,1101,1103,1105,1107,1110,1113,1116],{"class":387,"line":1095},30,[385,1097,747],{"class":566},[385,1099,1100],{"class":405}," value ",[385,1102,409],{"class":391},[385,1104,513],{"class":395},[385,1106,500],{"class":391},[385,1108,1109],{"class":538},"fake_value",[385,1111,1112],{"class":391},"(&",[385,1114,1115],{"class":405},"schema",[385,1117,736],{"class":391},[385,1119,1121,1123,1125,1128,1130,1132,1134,1136,1139,1142,1144,1147,1150,1153,1155],{"class":387,"line":1120},31,[385,1122,772],{"class":538},[385,1124,554],{"class":391},[385,1126,1127],{"class":405},"value",[385,1129,392],{"class":391},[385,1131,427],{"class":391},[385,1133,955],{"class":423},[385,1135,427],{"class":391},[385,1137,1138],{"class":391},"].",[385,1140,1141],{"class":538},"as_i64",[385,1143,603],{"class":391},[385,1145,1146],{"class":538},"unwrap",[385,1148,1149],{"class":391},"()",[385,1151,1152],{"class":391}," >=",[385,1154,1065],{"class":493},[385,1156,736],{"class":391},[370,1158,1160],{"id":1159},"api","API",[1162,1163,1164,1177],"table",{},[1165,1166,1167],"thead",{},[1168,1169,1170,1174],"tr",{},[1171,1172,1173],"th",{},"Item",[1171,1175,1176],{},"Description",[1178,1179,1180,1204,1214,1239,1249,1270,1289],"tbody",{},[1168,1181,1182,1188],{},[1183,1184,1185],"td",{},[344,1186,1187],{},"impl_fake!(T)",[1183,1189,1190,1192,1193,1196,1197,1200,1201,1203],{},[344,1191,518],{}," for a type with ",[344,1194,1195],{},"json_schema()"," and ",[344,1198,1199],{},"VldParse"," (",[344,1202,539],{},", derive)",[1168,1205,1206,1211],{},[1183,1207,1208],{},[344,1209,1210],{},"FakeData::{fake, fake_many, fake_seeded, try_fake}",[1183,1212,1213],{},"Typed, validated instances",[1168,1215,1216,1228],{},[1183,1217,1218,1221,1222,1221,1225],{},[344,1219,1220],{},"fake_value(&schema)"," \u002F ",[344,1223,1224],{},"fake_json(&schema)",[344,1226,1227],{},"fake_many(&schema, n)",[1183,1229,1230,1231,1234,1235,1238],{},"Raw ",[344,1232,1233],{},"serde_json::Value",", pretty JSON string, ",[344,1236,1237],{},"n"," values",[1168,1240,1241,1246],{},[1183,1242,1243],{},[344,1244,1245],{},"fake_value_seeded(&schema, seed)",[1183,1247,1248],{},"Reproducible value",[1168,1250,1251,1259],{},[1183,1252,1253,1221,1256],{},[344,1254,1255],{},"fake_parsed::\u003CT>(&schema)",[344,1257,1258],{},"try_fake_parsed::\u003CT>(&schema)",[1183,1260,1261,1262,1265,1266,1269],{},"Generate and parse through ",[344,1263,1264],{},"T::vld_parse_value"," (panics \u002F ",[344,1267,1268],{},"Result",")",[1168,1271,1272,1280],{},[1183,1273,1274,1221,1277],{},[344,1275,1276],{},"FakeGen::new()",[344,1278,1279],{},"FakeGen::with_rng(rng)",[1183,1281,1282,1283,358,1286],{},"Stateful generator; ",[344,1284,1285],{},"value(&schema)",[344,1287,1288],{},"value_with_hint(&schema, Some(\"email\"))",[1168,1290,1291,1295],{},[1183,1292,1293],{},[344,1294,503],{},[1183,1296,1297],{},"All of the above",[370,1299,1301],{"id":1300},"gotchas","Gotchas",[1303,1304,1305,1330,1356,1373,1380,1390],"ul",{},[1306,1307,1308,1309,358,1312,1315,1316,1221,1319,1322,1323,1221,1326,1329],"li",{},"Generated strings are checked with vld's own format checks before they are returned. Contradictory schemas (",[344,1310,1311],{},"uuid().max(10)",[344,1313,1314],{},"hex().uuid()",") end in a best-effort value that fails validation: ",[344,1317,1318],{},"fake()",[344,1320,1321],{},"fake_parsed"," then panic, ",[344,1324,1325],{},"try_fake()",[344,1327,1328],{},"try_fake_parsed"," return the error.",[1306,1331,1332,1334,1335,358,1338,1341,1342,1345,1346,1348,1349,1352,1353,1355],{},[344,1333,353],{},"s resolve against the root's ",[344,1336,1337],{},"$defs",[344,1339,1340],{},"definitions"," or ",[344,1343,1344],{},"components.schemas",". ",[344,1347,728],{}," embeds ",[344,1350,1351],{},"vld::nested!"," types under ",[344,1354,1337],{}," automatically; for a hand-written root schema add them yourself.",[1306,1357,1358,1361,1362,1365,1366,1368,1369,1372],{},[344,1359,1360],{},"FakeGen::with_rng"," takes a ",[344,1363,1364],{},"rand"," 0.10 RNG. A different ",[344,1367,1364],{}," major in your crate is a different ",[344,1370,1371],{},"Rng"," trait.",[1306,1374,1375,1376,1379],{},"Recursion is cut at depth 12, so recursive (",[344,1377,1378],{},"vld::lazy",") schemas terminate.",[1306,1381,1382,1383,1221,1386,1389],{},"vld's ",[344,1384,1385],{},"x-past",[344,1387,1388],{},"x-future"," dates keep a two-day margin from \"now\"; values are still time-dependent.",[1306,1391,1392,1394,1395,1398,1399,1401],{},[344,1393,728],{}," expands to ",[344,1396,1397],{},"::vld::…"," paths: depend on ",[344,1400,533],{}," directly, not only through another crate.",[1403,1404,1405],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":381,"searchDepth":402,"depth":454,"links":1407},[1408,1409,1410,1411],{"id":372,"depth":402,"text":373},{"id":480,"depth":402,"text":481},{"id":1159,"depth":402,"text":1160},{"id":1300,"depth":402,"text":1301},"Generate random test data that passes your vld schemas, typed or as raw JSON, with optional seeds.","md",[1415,1420],{"label":1416,"icon":1417,"to":1418,"target":1419},"crates.io","i-simple-icons-rust","https:\u002F\u002Fcrates.io\u002Fcrates\u002Fvld-fake","_blank",{"label":1421,"icon":307,"to":1422,"target":1419},"docs.rs","https:\u002F\u002Fdocs.rs\u002Fvld-fake",{},{"title":220,"description":1412},"BeFgqyhtBL8AN7HnEYEmbREbAatccBTsuYOZ3-foonE",[1427,1429],{"title":216,"path":217,"stem":218,"description":1428,"children":-1},"Generate TypeScript Zod or Valibot schemas from vld schemas, so the frontend validates exactly what the server does.",{"title":230,"path":231,"stem":232,"description":1430,"children":-1},"Validate rows before insert and after select, and bind validated column wrappers with SQLx.",1794036362167]