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());
        }
    }
}