35 lines
722 B
Plaintext
35 lines
722 B
Plaintext
extern crate rustc_serialize;
|
|
extern crate docopt;
|
|
|
|
use docopt::Docopt;
|
|
|
|
use std::io::{BufReader,BufRead};
|
|
use std::fs::File;
|
|
|
|
const USAGE: &'static str = "
|
|
Usage: rosetta <start> <count> <file>
|
|
";
|
|
|
|
#[derive(Debug, RustcDecodable)]
|
|
struct Args {
|
|
arg_start: usize,
|
|
arg_count: usize,
|
|
arg_file: String,
|
|
}
|
|
|
|
fn main() {
|
|
let args: Args = Docopt::new(USAGE)
|
|
.and_then(|d| d.decode())
|
|
.unwrap_or_else(|e| e.exit());
|
|
|
|
let file = BufReader::new(File::open(args.arg_file).unwrap());
|
|
|
|
for (i, line) in file.lines().enumerate() {
|
|
let cur = i + 1;
|
|
|
|
if cur < args.arg_start || cur >= (args.arg_start + args.arg_count) {
|
|
println!("{}", line.unwrap());
|
|
}
|
|
}
|
|
}
|