Skip to content

Commit 0d6cc11

Browse files
committed
Next adaptation for rust-nightly
1 parent 91ac46b commit 0d6cc11

File tree

6 files changed

+32
-25
lines changed

6 files changed

+32
-25
lines changed

src/generic.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ impl<'a, T: Copy> IFlagAction for StoreConstAction<'a, T> {
6868
impl<'a, T: FromStr> IArgAction for StoreAction<'a, T> {
6969
fn parse_arg(&self, arg: &str) -> ParseResult {
7070
match FromStr::from_str(arg) {
71-
Some(x) => {
71+
Ok(x) => {
7272
**self.cell.borrow_mut() = x;
7373
return Parsed;
7474
}
75-
None => {
75+
Err(_) => {
7676
return Error(format!("Bad value {}", arg));
7777
}
7878
}
@@ -82,11 +82,11 @@ impl<'a, T: FromStr> IArgAction for StoreAction<'a, T> {
8282
impl<'a, T: FromStr> IArgAction for StoreOptionAction<'a, T> {
8383
fn parse_arg(&self, arg: &str) -> ParseResult {
8484
match FromStr::from_str(arg) {
85-
Some(x) => {
85+
Ok(x) => {
8686
**self.cell.borrow_mut() = Some(x);
8787
return Parsed;
8888
}
89-
None => {
89+
Err(_) => {
9090
return Error(format!("Bad value {}", arg));
9191
}
9292
}
@@ -98,10 +98,10 @@ impl<'a, T: FromStr + Clone> IArgsAction for ListAction<'a, T> {
9898
let mut result = box Vec::new();
9999
for arg in args.iter() {
100100
match FromStr::from_str(*arg) {
101-
Some(x) => {
101+
Ok(x) => {
102102
result.push(x);
103103
}
104-
None => {
104+
Err(_) => {
105105
return Error(format!("Bad value {}", arg));
106106
}
107107
}

src/help.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@ impl<'a> Iterator for WordsIter<'a> {
4444
}
4545
}
4646
}
47-
for (idx, ch) in self.iter {
47+
loop {
48+
let (idx, ch) = match self.iter.next() {
49+
None => break,
50+
Some((idx, ch)) => ((idx, ch)),
51+
};
4852
match ch {
4953
' ' | '\t' | '\r' | '\n' => {
5054
return Some(self.data.slice(word_start, idx));

src/test_enum.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,20 @@ use test_parser::{check_ok,check_err};
77
use self::Greeting::{Hello, Hi, NoGreeting};
88

99

10-
#[derive(PartialEq, Eq, Show)]
10+
#[derive(PartialEq, Eq, Debug)]
1111
enum Greeting {
1212
Hello,
1313
Hi,
1414
NoGreeting,
1515
}
1616

1717
impl FromStr for Greeting {
18-
fn from_str(src: &str) -> Option<Greeting> {
18+
type Err = ();
19+
fn from_str(src: &str) -> Result<Greeting, ()> {
1920
return match src {
20-
"hello" => Some(Hello),
21-
"hi" => Some(Hi),
22-
_ => None,
21+
"hello" => Ok(Hello),
22+
"hi" => Ok(Hi),
23+
_ => Err(()),
2324
};
2425
}
2526
}

src/test_help.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ fn test_empty() {
2222

2323
#[test]
2424
fn test_options() {
25-
let mut ap = ArgumentParser::new();
2625
let mut val = 0;
2726
let mut val2 = 0;
27+
let mut ap = ArgumentParser::new();
2828
ap.set_description("Test program. The description of the program is ought
2929
to be very long, because we want to test how word wrapping works for
3030
it. So some more text would be ok for the test");
@@ -53,8 +53,8 @@ for the test\n"
5353

5454
#[test]
5555
fn test_argument() {
56-
let mut ap = ArgumentParser::new();
5756
let mut val = 0;
57+
let mut ap = ArgumentParser::new();
5858
ap.set_description("Test program");
5959
ap.refer(&mut val)
6060
.add_argument("value", box Store::<isize>,
@@ -76,9 +76,9 @@ fn test_argument() {
7676

7777
#[test]
7878
fn test_arguments() {
79-
let mut ap = ArgumentParser::new();
8079
let mut v1 = 0;
8180
let mut v2 = Vec::new();
81+
let mut ap = ArgumentParser::new();
8282
ap.set_description("Test program");
8383
ap.refer(&mut v1)
8484
.add_argument("v1", box Store::<isize>,
@@ -104,9 +104,9 @@ fn test_arguments() {
104104

105105
#[test]
106106
fn test_req_arguments() {
107-
let mut ap = ArgumentParser::new();
108107
let mut v1 = 0;
109108
let mut v2 = Vec::new();
109+
let mut ap = ArgumentParser::new();
110110
ap.set_description("Test program");
111111
ap.refer(&mut v1)
112112
.add_argument("v1", box Store::<isize>,
@@ -134,8 +134,8 @@ fn test_req_arguments() {
134134

135135
#[test]
136136
fn test_metavar() {
137-
let mut ap = ArgumentParser::new();
138137
let mut val2 = 0;
138+
let mut ap = ArgumentParser::new();
139139
ap.set_description("Test program.");
140140
ap.refer(&mut val2)
141141
.add_option(&["-L", "--long-option"], box Store::<isize>,

src/test_usage.rs

+9-7
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,23 @@ fn test_empty() {
1515

1616
#[test]
1717
fn test_options() {
18-
let mut ap = ArgumentParser::new();
1918
let mut val = 0;
20-
ap.refer(&mut val)
21-
.add_option(&["--value"], box Store::<isize>,
22-
"Set integer value");
2319
let mut buf = MemWriter::new();
24-
assert_eq!(ap.print_usage("./argparse_test", &mut buf), Ok(()));
20+
{
21+
let mut ap = ArgumentParser::new();
22+
ap.refer(&mut val)
23+
.add_option(&["--value"], box Store::<isize>,
24+
"Set integer value");
25+
assert_eq!(ap.print_usage("./argparse_test", &mut buf), Ok(()));
26+
}
2527
assert_eq!("Usage:\n ./argparse_test [OPTIONS]\n",
2628
from_utf8(buf.into_inner().as_slice()).unwrap());
2729
}
2830

2931
#[test]
3032
fn test_argument() {
31-
let mut ap = ArgumentParser::new();
3233
let mut val = 0;
34+
let mut ap = ArgumentParser::new();
3335
ap.refer(&mut val)
3436
.add_argument("value", box Store::<isize>,
3537
"Integer value");
@@ -41,9 +43,9 @@ fn test_argument() {
4143

4244
#[test]
4345
fn test_arguments() {
44-
let mut ap = ArgumentParser::new();
4546
let mut v1 = 0;
4647
let mut v2 = Vec::new();
48+
let mut ap = ArgumentParser::new();
4749
ap.refer(&mut v1)
4850
.add_argument("v1", box Store::<isize>,
4951
"Integer value 1");

vagga.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ containers:
55
- !Ubuntu trusty
66
- !Install [make, gcc]
77
- !TarInstall
8-
url: http://static.rust-lang.org/dist/rust-1.0.0-alpha-x86_64-unknown-linux-gnu.tar.gz
8+
url: http://static.rust-lang.org/dist/rust-nightly-x86_64-unknown-linux-gnu.tar.gz
99
script: ./install.sh --prefix=/usr
1010
volumes:
1111
/tmp: !Tmpfs { size: 100Mi }

0 commit comments

Comments
 (0)