Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum MyOption<T> {
- Some(T),
- None
- }
- impl<T> MyOption<T> {
- fn unwrap(self) -> T {
- match self {
- MyOption::Some(v) => v,
- MyOption::None => panic!("unwrap failed"),
- }
- }
- fn from_option(v: Option<T>) -> Self {
- match v {
- None => MyOption::None,
- Some(v) => MyOption::Some(v),
- }
- }
- }
- fn main() {
- let mut v = vec![1,2,3];
- while let MyOption::Some(v) = MyOption::from_option(v.pop()) {
- println!("{}", v);
- }
- let w: MyOption<i32> = MyOption::None;
- println!("{}", w.unwrap());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement