amazon_spapi/client/
option_ext.rs

1use anyhow::{Result, anyhow};
2use backtrace::Backtrace;
3
4pub trait OptionExt<T> {
5    #[allow(unused)]
6    fn ok(self) -> Result<T>;
7    #[allow(unused)]
8    fn okor(self, err: &'static str) -> anyhow::Result<T>;
9}
10
11impl<T> OptionExt<T> for Option<T> {
12    fn ok(self) -> Result<T> {
13        match self {
14            Some(value) => Ok(value),
15            None => {
16                let bt = Backtrace::new();
17                Err(anyhow!("called `Option::ok()` on a `None` value: {:?}", bt))
18            },
19        }
20    }
21    fn okor(self, err: &'static str) -> anyhow::Result<T> {
22        match self {
23            Some(value) => Ok(value),
24            None => Err(anyhow!("{}", err)),
25        }
26    }
27}