]> git.lizzy.rs Git - rust.git/blob - src/test/auxiliary/static-methods-crate.rs
Merge pull request #20510 from tshepang/patch-6
[rust.git] / src / test / auxiliary / static-methods-crate.rs
1 // Copyright 2012 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 #![crate_name="static_methods_crate"]
12 #![crate_type = "lib"]
13
14 use std::int;
15
16 pub trait read {
17     fn readMaybe(s: String) -> Option<Self>;
18 }
19
20 impl read for int {
21     fn readMaybe(s: String) -> Option<int> {
22         s.parse()
23     }
24 }
25
26 impl read for bool {
27     fn readMaybe(s: String) -> Option<bool> {
28         match s.as_slice() {
29           "true" => Some(true),
30           "false" => Some(false),
31           _ => None
32         }
33     }
34 }
35
36 pub fn read<T:read>(s: String) -> T {
37     match read::readMaybe(s) {
38       Some(x) => x,
39       _ => panic!("read panicked!")
40     }
41 }