extern crate ropey;
use std::io::Result;
use ropey::Rope;
use std::fs::File;
use std::io::{BufReader, BufWriter};
fn main() {
do_stuff().unwrap();
}
fn do_stuff() -> Result<()> {
let mut text = Rope::from_reader(BufReader::new(File::open("my_great_book.txt")?))?;
println!("{}", text.line(515));
let start_idx = text.line_to_char(515);
let end_idx = text.line_to_char(516);
text.remove(start_idx..end_idx);
text.insert(start_idx, "The flowers are... so... dunno.\n");
let start_idx = text.line_to_char(511);
let end_idx = text.line_to_char(516);
println!("{}", text.slice(start_idx..end_idx));
text.write_to(BufWriter::new(File::create("my_great_book.txt")?))?;
Ok(())
}