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}