sqlx 0.2.5

🧰 The Rust SQL Toolkit.
Documentation
use crate::decode::DecodeError;
use crate::Error;

pub trait ResultExt<T>: Sized {
    fn try_unwrap_optional(self) -> crate::Result<T>;
}

impl<T> ResultExt<T> for crate::Result<T> {
    fn try_unwrap_optional(self) -> crate::Result<T> {
        self
    }
}

impl<T> ResultExt<Option<T>> for crate::Result<T> {
    fn try_unwrap_optional(self) -> crate::Result<Option<T>> {
        match self {
            Ok(val) => Ok(Some(val)),
            Err(Error::Decode(DecodeError::UnexpectedNull)) => Ok(None),
            Err(e) => Err(e),
        }
    }
}