[{"data":1,"prerenderedAt":1132},["ShallowReactive",2],{"navigation":3,"\u002Fintegrations\u002Fui\u002Fdioxus":335,"\u002Fintegrations\u002Fui\u002Fdioxus-surround":1127},[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":280,"body":337,"description":1113,"extension":1114,"links":1115,"meta":1124,"navigation":461,"path":281,"seo":1125,"stem":282,"__hash__":1126},"docs\u002F6.integrations\u002F7.ui\u002F1.dioxus.md",{"type":338,"value":339,"toc":1107},"minimark",[340,356,361,421,428,432,866,869,953,957,1060,1064,1103],[341,342,343,346,347,355],"p",{},[344,345,280],"code",{}," lets the same vld schemas check server-function arguments on the server and form fields in the browser. It has ",[348,349,350,351,354],"strong",{},"no ",[344,352,353],{},"dioxus"," dependency"," (it works with any Dioxus version) and builds for native and WASM targets.",[357,358,360],"h2",{"id":359},"install","Install",[362,363,369],"pre",{"className":364,"code":365,"filename":366,"language":367,"meta":368,"style":368},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[dependencies]\nvld = \"0.5\"\nvld-dioxus = \"0.5\"\n","Cargo.toml","toml","",[344,370,371,387,407],{"__ignoreMap":368},[372,373,376,380,384],"span",{"class":374,"line":375},"line",1,[372,377,379],{"class":378},"sMK4o","[",[372,381,383],{"class":382},"sBMFI","dependencies",[372,385,386],{"class":378},"]\n",[372,388,390,394,397,400,404],{"class":374,"line":389},2,[372,391,393],{"class":392},"sTEyZ","vld ",[372,395,396],{"class":378},"=",[372,398,399],{"class":378}," \"",[372,401,403],{"class":402},"sfazB","0.5",[372,405,406],{"class":378},"\"\n",[372,408,410,413,415,417,419],{"class":374,"line":409},3,[372,411,412],{"class":392},"vld-dioxus ",[372,414,396],{"class":378},[372,416,399],{"class":378},[372,418,403],{"class":402},[372,420,406],{"class":378},[341,422,423,424,427],{},"No features. MSRV: 1.85 (see ",[425,426,23],"a",{"href":24},").",[357,429,431],{"id":430},"example","Example",[362,433,437],{"className":434,"code":435,"language":436,"meta":368,"style":368},"language-rust shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","use dioxus::prelude::*;\n\n\u002F\u002F Shared rules, compiled for the server and the client.\nfn name_schema() -> vld::primitives::ZString { vld::string().min(2).max(50) }\nfn email_schema() -> vld::primitives::ZString { vld::string().email() }\n\n#[server]\nasync fn create_user(name: String, email: String) -> Result\u003C(), ServerFnError> {\n    vld_dioxus::validate_args! {\n        name  => name_schema(),\n        email => email_schema(),\n    }\n    .map_err(|e| ServerFnError::new(e.to_string()))?;\n    Ok(())\n}\n\n#[component]\nfn CreateUserForm() -> Element {\n    let name = use_signal(String::new);\n    let name_error = use_memo(move || vld_dioxus::check_field(&name(), &name_schema()));\n    \u002F\u002F ... render the input and `name_error`\n    rsx! {}\n}\n","rust",[344,438,439,457,463,469,536,575,580,591,643,656,670,682,688,726,735,741,746,756,773,800,846,852,861],{"__ignoreMap":368},[372,440,441,445,448,451,454],{"class":374,"line":375},[372,442,444],{"class":443},"sbssI","use",[372,446,447],{"class":382}," dioxus",[372,449,450],{"class":378},"::",[372,452,453],{"class":382},"prelude",[372,455,456],{"class":378},"::*;\n",[372,458,459],{"class":374,"line":389},[372,460,462],{"emptyLinePlaceholder":461},true,"\n",[372,464,465],{"class":374,"line":409},[372,466,468],{"class":467},"sHwdD","\u002F\u002F Shared rules, compiled for the server and the client.\n",[372,470,472,475,479,482,485,488,490,493,495,498,501,503,505,508,511,514,517,520,522,525,527,530,533],{"class":374,"line":471},4,[372,473,474],{"class":443},"fn",[372,476,478],{"class":477},"s2Zo4"," name_schema",[372,480,481],{"class":378},"()",[372,483,484],{"class":378}," ->",[372,486,487],{"class":382}," vld",[372,489,450],{"class":378},[372,491,492],{"class":382},"primitives",[372,494,450],{"class":378},[372,496,497],{"class":382},"ZString",[372,499,500],{"class":378}," {",[372,502,487],{"class":382},[372,504,450],{"class":378},[372,506,507],{"class":477},"string",[372,509,510],{"class":378},"().",[372,512,513],{"class":477},"min",[372,515,516],{"class":378},"(",[372,518,519],{"class":443},"2",[372,521,427],{"class":378},[372,523,524],{"class":477},"max",[372,526,516],{"class":378},[372,528,529],{"class":443},"50",[372,531,532],{"class":378},")",[372,534,535],{"class":378}," }\n",[372,537,539,541,544,546,548,550,552,554,556,558,560,562,564,566,568,571,573],{"class":374,"line":538},5,[372,540,474],{"class":443},[372,542,543],{"class":477}," email_schema",[372,545,481],{"class":378},[372,547,484],{"class":378},[372,549,487],{"class":382},[372,551,450],{"class":378},[372,553,492],{"class":382},[372,555,450],{"class":378},[372,557,497],{"class":382},[372,559,500],{"class":378},[372,561,487],{"class":382},[372,563,450],{"class":378},[372,565,507],{"class":477},[372,567,510],{"class":378},[372,569,570],{"class":477},"email",[372,572,481],{"class":378},[372,574,535],{"class":378},[372,576,578],{"class":374,"line":577},6,[372,579,462],{"emptyLinePlaceholder":461},[372,581,583,586,589],{"class":374,"line":582},7,[372,584,585],{"class":378},"#[",[372,587,588],{"class":392},"server",[372,590,386],{"class":378},[372,592,594,597,600,603,605,608,611,614,617,620,622,624,626,628,631,634,637,640],{"class":374,"line":593},8,[372,595,596],{"class":443},"async",[372,598,599],{"class":443}," fn",[372,601,602],{"class":477}," create_user",[372,604,516],{"class":378},[372,606,607],{"class":392},"name",[372,609,610],{"class":378},":",[372,612,613],{"class":382}," String",[372,615,616],{"class":378},",",[372,618,619],{"class":392}," email",[372,621,610],{"class":378},[372,623,613],{"class":382},[372,625,532],{"class":378},[372,627,484],{"class":378},[372,629,630],{"class":382}," Result",[372,632,633],{"class":378},"\u003C(),",[372,635,636],{"class":382}," ServerFnError",[372,638,639],{"class":378},">",[372,641,642],{"class":378}," {\n",[372,644,646,649,651,654],{"class":374,"line":645},9,[372,647,648],{"class":382},"    vld_dioxus",[372,650,450],{"class":378},[372,652,653],{"class":477},"validate_args!",[372,655,642],{"class":378},[372,657,659,662,665,667],{"class":374,"line":658},10,[372,660,661],{"class":392},"        name  ",[372,663,664],{"class":378},"=>",[372,666,478],{"class":477},[372,668,669],{"class":378},"(),\n",[372,671,673,676,678,680],{"class":374,"line":672},11,[372,674,675],{"class":392},"        email ",[372,677,664],{"class":378},[372,679,543],{"class":477},[372,681,669],{"class":378},[372,683,685],{"class":374,"line":684},12,[372,686,687],{"class":378},"    }\n",[372,689,691,694,697,700,703,706,708,710,713,715,717,720,723],{"class":374,"line":690},13,[372,692,693],{"class":378},"    .",[372,695,696],{"class":477},"map_err",[372,698,699],{"class":378},"(|",[372,701,702],{"class":392},"e",[372,704,705],{"class":378},"|",[372,707,636],{"class":382},[372,709,450],{"class":378},[372,711,712],{"class":477},"new",[372,714,516],{"class":378},[372,716,702],{"class":392},[372,718,719],{"class":378},".",[372,721,722],{"class":477},"to_string",[372,724,725],{"class":378},"()))?;\n",[372,727,729,732],{"class":374,"line":728},14,[372,730,731],{"class":382},"    Ok",[372,733,734],{"class":378},"(())\n",[372,736,738],{"class":374,"line":737},15,[372,739,740],{"class":378},"}\n",[372,742,744],{"class":374,"line":743},16,[372,745,462],{"emptyLinePlaceholder":461},[372,747,749,751,754],{"class":374,"line":748},17,[372,750,585],{"class":378},[372,752,753],{"class":392},"component",[372,755,386],{"class":378},[372,757,759,761,764,766,768,771],{"class":374,"line":758},18,[372,760,474],{"class":443},[372,762,763],{"class":477}," CreateUserForm",[372,765,481],{"class":378},[372,767,484],{"class":378},[372,769,770],{"class":382}," Element",[372,772,642],{"class":378},[372,774,776,780,783,785,788,790,793,795,797],{"class":374,"line":775},19,[372,777,779],{"class":778},"spNyl","    let",[372,781,782],{"class":392}," name ",[372,784,396],{"class":378},[372,786,787],{"class":477}," use_signal",[372,789,516],{"class":378},[372,791,792],{"class":382},"String",[372,794,450],{"class":378},[372,796,712],{"class":392},[372,798,799],{"class":378},");\n",[372,801,803,805,808,810,813,815,818,821,824,826,829,832,834,837,840,843],{"class":374,"line":802},20,[372,804,779],{"class":778},[372,806,807],{"class":392}," name_error ",[372,809,396],{"class":378},[372,811,812],{"class":477}," use_memo",[372,814,516],{"class":378},[372,816,817],{"class":443},"move",[372,819,820],{"class":378}," ||",[372,822,823],{"class":382}," vld_dioxus",[372,825,450],{"class":378},[372,827,828],{"class":477},"check_field",[372,830,831],{"class":378},"(&",[372,833,607],{"class":477},[372,835,836],{"class":378},"(),",[372,838,839],{"class":378}," &",[372,841,842],{"class":477},"name_schema",[372,844,845],{"class":378},"()));\n",[372,847,849],{"class":374,"line":848},21,[372,850,851],{"class":467},"    \u002F\u002F ... render the input and `name_error`\n",[372,853,855,858],{"class":374,"line":854},22,[372,856,857],{"class":477},"    rsx!",[372,859,860],{"class":378}," {}\n",[372,862,864],{"class":374,"line":863},23,[372,865,740],{"class":378},[341,867,868],{},"On the client, recover the field errors from the server-function error:",[362,870,872],{"className":434,"code":871,"language":436,"meta":368,"style":368},"if let Some(err) = vld_dioxus::VldServerError::from_server_message(&e.to_string()) {\n    let name_msg = err.field_error(\"name\");\n}\n",[344,873,874,921,949],{"__ignoreMap":368},[372,875,876,880,883,886,888,891,893,896,898,900,903,905,908,910,912,914,916,919],{"class":374,"line":375},[372,877,879],{"class":878},"s7zQu","if",[372,881,882],{"class":778}," let",[372,884,885],{"class":382}," Some",[372,887,516],{"class":378},[372,889,890],{"class":392},"err",[372,892,532],{"class":378},[372,894,895],{"class":378}," =",[372,897,823],{"class":382},[372,899,450],{"class":378},[372,901,902],{"class":382},"VldServerError",[372,904,450],{"class":378},[372,906,907],{"class":477},"from_server_message",[372,909,831],{"class":378},[372,911,702],{"class":392},[372,913,719],{"class":378},[372,915,722],{"class":477},[372,917,918],{"class":378},"())",[372,920,642],{"class":378},[372,922,923,925,928,930,933,935,938,940,943,945,947],{"class":374,"line":389},[372,924,779],{"class":778},[372,926,927],{"class":392}," name_msg ",[372,929,396],{"class":378},[372,931,932],{"class":392}," err",[372,934,719],{"class":378},[372,936,937],{"class":477},"field_error",[372,939,516],{"class":378},[372,941,942],{"class":378},"\"",[372,944,607],{"class":402},[372,946,942],{"class":378},[372,948,799],{"class":378},[372,950,951],{"class":374,"line":409},[372,952,740],{"class":378},[357,954,956],{"id":955},"api","API",[958,959,960,982,991,1005,1015,1047,1052],"ul",{},[961,962,963,966,967,970,971,974,975,978,979,427],"li",{},[344,964,965],{},"validate_args! { arg => schema, ... }"," — validate local values; ",[344,968,969],{},"Result\u003C(), VldServerError>"," with one ",[344,972,973],{},"FieldError"," per issue (field = argument name, nested issues as ",[344,976,977],{},"arg.sub"," \u002F ",[344,980,981],{},"arg[0]",[961,983,984,978,987,990],{},[344,985,986],{},"validate::\u003CS, T>(&value)",[344,988,989],{},"validate_value::\u003CS>(&json)"," — validate against a schema type.",[961,992,993,996,997,1000,1001,1004],{},[344,994,995],{},"check_field(&value, &schema)"," — first error message or ",[344,998,999],{},"None","; ",[344,1002,1003],{},"check_field_all"," — all messages.",[961,1006,1007,1010,1011,1014],{},[344,1008,1009],{},"check_all_fields::\u003CS, T>(&value)"," — ",[344,1012,1013],{},"Vec\u003CFieldError>"," for a whole form.",[961,1016,1017,1010,1020,1023,1024,1023,1027,1023,1029,1023,1032,1023,1035,1023,1038,1023,1041,1000,1043,1046],{},[344,1018,1019],{},"VldServerError { message, fields }",[344,1021,1022],{},"validation",", ",[344,1025,1026],{},"internal",[344,1028,937],{},[344,1030,1031],{},"field_errors",[344,1033,1034],{},"has_field_error",[344,1036,1037],{},"error_fields",[344,1039,1040],{},"from_json",[344,1042,907],{},[344,1044,1045],{},"Display"," is its JSON.",[961,1048,1049,719],{},[344,1050,1051],{},"FieldError { field, message }",[961,1053,1054,1056,1057,719],{},[344,1055,453],{}," — all of the above plus ",[344,1058,1059],{},"vld::prelude::*",[357,1061,1063],{"id":1062},"gotchas","Gotchas",[958,1065,1066,1077,1100],{},[961,1067,1068,1069,1023,1071,1023,1074,719],{},"Field paths have no leading dot: ",[344,1070,607],{},[344,1072,1073],{},"user.email",[344,1075,1076],{},"items[0]",[961,1078,1079,1082,1083,1085,1086,1089,1090,1092,1093,1096,1097,719],{},[344,1080,1081],{},"ServerFnError","'s ",[344,1084,1045],{}," adds a prefix before the JSON, so ",[344,1087,1088],{},"from_json(&e.to_string())"," does not match; use ",[344,1091,907],{},", which reads from the first ",[344,1094,1095],{},"{"," to the last ",[344,1098,1099],{},"}",[961,1101,1102],{},"A value that fails to serialize is reported as an error, never as valid.",[1104,1105,1106],"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 .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}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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":368,"searchDepth":389,"depth":409,"links":1108},[1109,1110,1111,1112],{"id":359,"depth":389,"text":360},{"id":430,"depth":389,"text":431},{"id":955,"depth":389,"text":956},{"id":1062,"depth":389,"text":1063},"Shared validation for Dioxus server functions and WASM clients, without a dioxus dependency.","md",[1116,1121],{"label":1117,"icon":1118,"to":1119,"target":1120},"crates.io","i-simple-icons-rust","https:\u002F\u002Fcrates.io\u002Fcrates\u002Fvld-dioxus","_blank",{"label":1122,"icon":307,"to":1123,"target":1120},"docs.rs","https:\u002F\u002Fdocs.rs\u002Fvld-dioxus",{},{"title":280,"description":1113},"ETD_WqH6vajka758abhEYjDRdjb2BTbUWvKlsyA0kuY",[1128,1130],{"title":270,"path":271,"stem":272,"description":1129,"children":-1},"Validate clap-parsed CLI arguments with",{"title":284,"path":285,"stem":286,"description":1131,"children":-1},"Shared validation for Leptos server functions and WASM clients, without a leptos dependency.",1794036363048]