#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Outcome<T> {
Found(T),
NotFoundOrHidden,
}
impl<T> Outcome<T> {
#[must_use]
pub fn is_found(&self) -> bool {
matches!(self, Outcome::Found(_))
}
pub fn into_option(self) -> Option<T> {
match self {
Outcome::Found(t) => Some(t),
Outcome::NotFoundOrHidden => None,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn outcome_v1_variant_set_pinned() {
let o: Outcome<i32> = Outcome::Found(42);
match o {
Outcome::Found(_) | Outcome::NotFoundOrHidden => {}
}
}
}