Type Definition warpgrapher::engine::validators::Validators
source · [−]pub type Validators = HashMap<String, Box<ValidatorFunc>>;
Expand description
Type alias for a custom function used to validate the input to a resolver
Examples
fn name_validator(value: &Value) -> Result<(), Error> {
let name = match value {
Value::Map(m) => match m.get("name") {
Some(n) => n,
None => return Err(Error::ValidationFailed {message: "Name missing.".to_string()}),
},
_ => return Err(Error::ValidationFailed {message: "Field map missing.".to_string()}),
};
match name {
Value::String(s) => if s == "KENOBI" {
return Err(Error::ValidationFailed {
message: "Cannot be named KENOBI.".to_string()
});
} else {
return Ok(());
},
_ => Err(Error::ValidationFailed {message: "Expected a string value.".to_string()}),
}
}
let mut validators = Validators::new();
validators.insert("name_validator".to_string(), Box::new(name_validator));