use std::str;
enum Option<T> {
None,
Some(T)
}
impl<T> Option<T> {
fn unwrap(self) -> T {
match self{
Self::Some(t) => t,
Self::None => panic!("Panic!!")
}
}
}
enum Result<T, E> {
Ok(T),
Err(E)
}
pub fn main(){
panic!("Oh no!!\nI panicked!!!");
let o1: std::option::Option<i32> = Some(128);
o1.unwrap();
let o2: std::option::Option<i32> = None;
o2.unwrap();
let s = str::from_utf8(&[195, 40]).expect("Valid utf-8");
let melon = &[240, 159, 141, 137];
match std::str::from_utf8(melon){
Ok(s) => println!("{}", s),
Err(e) => panic!("Invalid UTF-8 sequence: {}", e)
}
if let Ok(s) = str::from_utf8(melon){
println!("{}", s);
}
}