pub trait MaybeResult<T> { type Error; fn from(x: Result<T, Self::Error>) -> Self; fn to_result(self) -> Result<T, Self::Error>; }