rsed 0.1.0

A very rusty implementation of sed. Not to be taken seriously.
Documentation
use rsed::{parse_line, Opt};
use std::fs;
use structopt::StructOpt;

fn main() {
    let opt = Opt::from_args();
    let file_name = opt.get_file_name();
    let file_content = fs::read_to_string(&file_name).expect("File does not exist");
    let mut file_lines: Vec<String> = file_content.lines().map(|l| l.to_string()).collect();
    let mut result = Vec::new();
    for (i, line) in file_lines.iter_mut().enumerate() {
        line.push('\n');
        result.append(&mut parse_line(&opt, i, line));
    }
    let result = result.join("");
    if let Some(in_place) = opt.in_place {
        if in_place.is_empty() {
            fs::write(&file_name, result).expect("Error writing to file");
        } else {
            let mut tmp = file_name.clone();
            tmp.set_extension(in_place);
            fs::write(tmp, file_content).expect("Error writing to default file");
            fs::write(&file_name, result).expect("Error writing to file");
        }
    } else {
        print!("{}", result);
    }
}