thaterror/
lib.rs

1use thiserror::Error;
2
3pub trait OptionExt<T> {
4    fn required(self) -> Result<T, Required>;
5}
6
7impl<T> OptionExt<T> for Option<T> {
8    fn required(self) -> Result<T, Required> {
9        self.ok_or(Required)
10    }
11}
12
13/// If option or parameter is required.
14#[derive(Error, Debug)]
15#[error("value is required")]
16pub struct Required;