garde/rules/
required.rs

1use crate::{Error, Result};
2
3pub fn apply<T: Required>(v: &T, _: ()) -> Result {
4    if !v.is_set() {
5        return Err(Error::new("not set"));
6    }
7    Ok(())
8}
9
10pub trait Required {
11    fn is_set(&self) -> bool;
12}
13
14impl<T> Required for Option<T> {
15    fn is_set(&self) -> bool {
16        self.is_some()
17    }
18}