use drop_some::DropSome;
#[test]
fn test()
{
let x = ok_value_to_unit();
assert_eq!(x.drop_some(), None);
}
fn ok_value_to_unit() -> Option<String>
{
match "something"
{
"pattern-x" => some_task1().drop_some()?,
"pattern-y" => some_task2().drop_some()?,
"pattern-z" => some_task3()?,
"pattern-w" => some_task4(),
_ => ()
}
None
}
fn some_task1() -> Option<i8>
{
Some(1)
}
fn some_task2<'a>() -> Option<&'a str>
{
Some("abc")
}
fn some_task3() -> Option<()>
{
Some(())
}
fn some_task4() -> ()
{
()
}