tente! () macro para o tipo de opção em Rust

No Rust, você não pode usar a try!()macro com Optiontipos:

let last = try!(vec![1,2,3].last());

erro: tipos incompatíveis:
esperado core::option::Option<&_>,
encontradocore::result::Result<_, _>

mas você pode facilmente converter OptionparaResult para fazê-lo funcionar:

struct MyErrorType;
let last = try!(vec![1,2,3].last().ok_or(MyErrorType)); // strings are convertible to errors, so you can use them too.

Basta adicionar ok_or()à expressão e fornecer uma instância de um erro que deve ser usado no lugar de None.

Também funciona com ?operador.