| extern crate valico; |
| extern crate serde_json; |
| |
| use valico::json_dsl; |
| use serde_json::{from_str, to_string_pretty}; |
| |
| fn main() { |
| |
| let params = json_dsl::Builder::build(|params| { |
| params.req_nested("user", json_dsl::array(), |params| { |
| params.req_typed("name", json_dsl::string()); |
| params.req_typed("friend_ids", json_dsl::array_of(json_dsl::u64())) |
| }); |
| }); |
| |
| let mut obj = from_str(r#"{"user": {"name": "Frodo", "friend_ids": ["1223"]}}"#).unwrap(); |
| |
| let state = params.process(&mut obj, &None); |
| if state.is_valid() { |
| println!("Result object is {}", to_string_pretty(&obj).unwrap()); |
| } else { |
| panic!("Errors during process: {:?}", state); |
| } |
| |
| } |