@@ -89,7 +89,11 @@ enum HasArg { Yes, No, Maybe, }
89
89
enum Occur { Req , Optional , Multi , }
90
90
91
91
/// A description of a possible option
92
- pub type Opt = { name : Name , hasarg : HasArg , occur : Occur } ;
92
+ pub struct Opt {
93
+ name : Name ,
94
+ hasarg : HasArg ,
95
+ occur : Occur
96
+ }
93
97
94
98
fn mkname ( nm : & str ) -> Name {
95
99
let unm = str:: from_slice ( nm) ;
@@ -143,35 +147,35 @@ impl Opt : Eq {
143
147
144
148
/// Create an option that is required and takes an argument
145
149
pub fn reqopt ( name : & str ) -> Opt {
146
- return { name: mkname ( name) , hasarg: Yes , occur: Req } ;
150
+ return Opt { name : mkname ( name) , hasarg : Yes , occur : Req } ;
147
151
}
148
152
149
153
/// Create an option that is optional and takes an argument
150
154
pub fn optopt ( name : & str ) -> Opt {
151
- return { name: mkname ( name) , hasarg: Yes , occur: Optional } ;
155
+ return Opt { name : mkname ( name) , hasarg : Yes , occur : Optional } ;
152
156
}
153
157
154
158
/// Create an option that is optional and does not take an argument
155
159
pub fn optflag ( name : & str ) -> Opt {
156
- return { name: mkname ( name) , hasarg: No , occur: Optional } ;
160
+ return Opt { name : mkname ( name) , hasarg : No , occur : Optional } ;
157
161
}
158
162
159
163
/// Create an option that is optional and does not take an argument
160
164
pub fn optflagmulti ( name : & str ) -> Opt {
161
- return { name: mkname ( name) , hasarg: No , occur: Multi } ;
165
+ return Opt { name : mkname ( name) , hasarg : No , occur : Multi } ;
162
166
}
163
167
164
168
/// Create an option that is optional and takes an optional argument
165
169
pub fn optflagopt ( name : & str ) -> Opt {
166
- return { name: mkname ( name) , hasarg: Maybe , occur: Optional } ;
170
+ return Opt { name : mkname ( name) , hasarg : Maybe , occur : Optional } ;
167
171
}
168
172
169
173
/**
170
174
* Create an option that is optional, takes an argument, and may occur
171
175
* multiple times
172
176
*/
173
177
pub fn optmulti ( name : & str ) -> Opt {
174
- return { name: mkname ( name) , hasarg: Yes , occur: Multi } ;
178
+ return Opt { name : mkname ( name) , hasarg : Yes , occur : Multi } ;
175
179
}
176
180
177
181
enum Optval { Val ( ~str ) , Given , }
@@ -180,7 +184,11 @@ enum Optval { Val(~str), Given, }
180
184
* The result of checking command line arguments. Contains a vector
181
185
* of matches and a vector of free strings.
182
186
*/
183
- pub type Matches = { opts : ~[ Opt ] , vals : ~[ ~[ Optval ] ] , free : ~[ ~str ] } ;
187
+ pub struct Matches {
188
+ opts : ~[ Opt ] ,
189
+ vals : ~[ ~[ Optval ] ] ,
190
+ free : ~[ ~str ]
191
+ }
184
192
185
193
impl Optval : Eq {
186
194
pure fn eq ( & self , other : & Optval ) -> bool {
@@ -410,7 +418,7 @@ pub fn getopts(args: &[~str], opts: &[Opt]) -> Result unsafe {
410
418
}
411
419
i += 1;
412
420
}
413
- return Ok({opts: vec::from_slice(opts),
421
+ return Ok(Matches {opts: vec::from_slice(opts),
414
422
vals: vec::from_mut(move vals),
415
423
free: free});
416
424
}
@@ -538,14 +546,14 @@ pub mod groups {
538
546
/** one group of options, e.g., both -h and --help, along with
539
547
* their shared description and properties
540
548
*/
541
- pub type OptGroup = {
549
+ pub struct OptGroup {
542
550
short_name : ~str ,
543
551
long_name : ~str ,
544
552
hint : ~str ,
545
553
desc : ~str ,
546
554
hasarg : HasArg ,
547
555
occur : Occur
548
- } ;
556
+ }
549
557
550
558
impl OptGroup : Eq {
551
559
pure fn eq ( & self , other : & OptGroup ) -> bool {
@@ -566,7 +574,7 @@ pub mod groups {
566
574
desc : & str , hint : & str ) -> OptGroup {
567
575
let len = short_name. len ( ) ;
568
576
assert len == 1 || len == 0 ;
569
- return { short_name: str :: from_slice ( short_name) ,
577
+ return OptGroup { short_name : str:: from_slice ( short_name) ,
570
578
long_name : str:: from_slice ( long_name) ,
571
579
hint : str:: from_slice ( hint) ,
572
580
desc : str:: from_slice ( desc) ,
@@ -579,7 +587,7 @@ pub mod groups {
579
587
desc : & str , hint : & str ) -> OptGroup {
580
588
let len = short_name. len ( ) ;
581
589
assert len == 1 || len == 0 ;
582
- return { short_name: str :: from_slice ( short_name) ,
590
+ return OptGroup { short_name : str:: from_slice ( short_name) ,
583
591
long_name : str:: from_slice ( long_name) ,
584
592
hint : str:: from_slice ( hint) ,
585
593
desc : str:: from_slice ( desc) ,
@@ -592,7 +600,7 @@ pub mod groups {
592
600
desc : & str ) -> OptGroup {
593
601
let len = short_name. len ( ) ;
594
602
assert len == 1 || len == 0 ;
595
- return { short_name: str :: from_slice ( short_name) ,
603
+ return OptGroup { short_name : str:: from_slice ( short_name) ,
596
604
long_name : str:: from_slice ( long_name) ,
597
605
hint: ~"",
598
606
desc : str:: from_slice ( desc) ,
@@ -605,7 +613,7 @@ pub mod groups {
605
613
desc : & str , hint : & str ) -> OptGroup {
606
614
let len = short_name. len ( ) ;
607
615
assert len == 1 || len == 0 ;
608
- return { short_name: str :: from_slice ( short_name) ,
616
+ return OptGroup { short_name : str:: from_slice ( short_name) ,
609
617
long_name : str:: from_slice ( long_name) ,
610
618
hint : str:: from_slice ( hint) ,
611
619
desc : str:: from_slice ( desc) ,
@@ -621,7 +629,7 @@ pub mod groups {
621
629
desc : & str , hint : & str ) -> OptGroup {
622
630
let len = short_name. len ( ) ;
623
631
assert len == 1 || len == 0 ;
624
- return { short_name: str :: from_slice ( short_name) ,
632
+ return OptGroup { short_name : str:: from_slice ( short_name) ,
625
633
long_name : str:: from_slice ( long_name) ,
626
634
hint : str:: from_slice ( hint) ,
627
635
desc : str:: from_slice ( desc) ,
@@ -637,20 +645,20 @@ pub mod groups {
637
645
638
646
( 0 , 0 ) => fail ~"this long-format option was given no name",
639
647
640
- ( 0 , _) => ~[ { name: Long ( ( ( * lopt) . long_name ) ) ,
641
- hasarg : ( * lopt) . hasarg ,
642
- occur : ( * lopt) . occur } ] ,
648
+ ( 0 , _) => ~[ Opt { name : Long ( ( ( * lopt) . long_name ) ) ,
649
+ hasarg : ( * lopt) . hasarg ,
650
+ occur : ( * lopt) . occur } ] ,
643
651
644
- ( 1 , 0 ) => ~[ { name: Short ( str:: char_at ( ( * lopt) . short_name , 0 ) ) ,
645
- hasarg : ( * lopt) . hasarg ,
646
- occur : ( * lopt) . occur } ] ,
652
+ ( 1 , 0 ) => ~[ Opt { name : Short ( str:: char_at ( ( * lopt) . short_name , 0 ) ) ,
653
+ hasarg : ( * lopt) . hasarg ,
654
+ occur : ( * lopt) . occur } ] ,
647
655
648
- ( 1 , _) => ~[ { name: Short ( str:: char_at ( ( * lopt) . short_name , 0 ) ) ,
649
- hasarg : ( * lopt) . hasarg ,
650
- occur : ( * lopt) . occur } ,
651
- { name: Long ( ( ( * lopt) . long_name ) ) ,
652
- hasarg : ( * lopt) . hasarg ,
653
- occur : ( * lopt) . occur } ] ,
656
+ ( 1 , _) => ~[ Opt { name : Short ( str:: char_at ( ( * lopt) . short_name , 0 ) ) ,
657
+ hasarg : ( * lopt) . hasarg ,
658
+ occur : ( * lopt) . occur } ,
659
+ Opt { name : Long ( ( ( * lopt) . long_name ) ) ,
660
+ hasarg : ( * lopt) . hasarg ,
661
+ occur : ( * lopt) . occur } ] ,
654
662
655
663
( _, _) => fail ~"something is wrong with the long-form opt"
656
664
}
@@ -725,6 +733,7 @@ mod tests {
725
733
#[ legacy_exports] ;
726
734
use opt = getopts;
727
735
use result: : { Err , Ok } ;
736
+ use opt:: groups:: OptGroup ;
728
737
729
738
fn check_fail_type ( f : Fail_ , ft : FailType ) {
730
739
match f {
@@ -1291,7 +1300,7 @@ mod tests {
1291
1300
#[test]
1292
1301
fn test_groups_reqopt() {
1293
1302
let opt = groups::reqopt(~" b", ~" banana", ~" some bananas", ~" VAL ");
1294
- assert opt == { short_name: ~" b",
1303
+ assert opt == OptGroup { short_name: ~" b",
1295
1304
long_name: ~" banana",
1296
1305
hint: ~" VAL ",
1297
1306
desc: ~" some bananas",
@@ -1302,7 +1311,7 @@ mod tests {
1302
1311
#[test]
1303
1312
fn test_groups_optopt() {
1304
1313
let opt = groups::optopt(~" a", ~" apple", ~" some apples", ~" VAL ");
1305
- assert opt == { short_name: ~" a",
1314
+ assert opt == OptGroup { short_name: ~" a",
1306
1315
long_name: ~" apple",
1307
1316
hint: ~" VAL ",
1308
1317
desc: ~" some apples",
@@ -1313,7 +1322,7 @@ mod tests {
1313
1322
#[test]
1314
1323
fn test_groups_optflag() {
1315
1324
let opt = groups::optflag(~" k", ~" kiwi", ~" some kiwis");
1316
- assert opt == { short_name: ~" k",
1325
+ assert opt == OptGroup { short_name: ~" k",
1317
1326
long_name: ~" kiwi",
1318
1327
hint: ~" ",
1319
1328
desc: ~" some kiwis",
@@ -1325,7 +1334,7 @@ mod tests {
1325
1334
fn test_groups_optflagopt() {
1326
1335
let opt = groups::optflagopt(~" p", ~" pineapple",
1327
1336
~" some pineapples", ~" VAL ");
1328
- assert opt == { short_name: ~" p",
1337
+ assert opt == OptGroup { short_name: ~" p",
1329
1338
long_name: ~" pineapple",
1330
1339
hint: ~" VAL ",
1331
1340
desc: ~" some pineapples",
@@ -1337,7 +1346,7 @@ mod tests {
1337
1346
fn test_groups_optmulti() {
1338
1347
let opt = groups::optmulti(~" l", ~" lime",
1339
1348
~" some limes", ~" VAL ");
1340
- assert opt == { short_name: ~" l",
1349
+ assert opt == OptGroup { short_name: ~" l",
1341
1350
long_name: ~" lime",
1342
1351
hint: ~" VAL ",
1343
1352
desc: ~" some limes",
0 commit comments