mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			560 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			560 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
#![crate_name="static_methods_crate"]
 | 
						|
#![crate_type = "lib"]
 | 
						|
 | 
						|
pub trait read: Sized {
 | 
						|
    fn readMaybe(s: String) -> Option<Self>;
 | 
						|
}
 | 
						|
 | 
						|
impl read for isize {
 | 
						|
    fn readMaybe(s: String) -> Option<isize> {
 | 
						|
        s.parse().ok()
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
impl read for bool {
 | 
						|
    fn readMaybe(s: String) -> Option<bool> {
 | 
						|
        match &*s {
 | 
						|
          "true" => Some(true),
 | 
						|
          "false" => Some(false),
 | 
						|
          _ => None
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
pub fn read<T:read>(s: String) -> T {
 | 
						|
    match read::readMaybe(s) {
 | 
						|
      Some(x) => x,
 | 
						|
      _ => panic!("read panicked!")
 | 
						|
    }
 | 
						|
}
 |