use std::fd::{File, OpenOptions}; use std::io::{BufReader, BufWriter, Read, Write}; use xdg::BaseDirectories; pub struct History(File); impl History { pub fn open(serie: spond_api::SeriesId) -> std::io::Result { let xdg_dirs = BaseDirectories::with_prefix(env!("CARGO_PKG_NAME")); let path = xdg_dirs.place_state_file(format!("{}.bin", serie))?; let file = OpenOptions::new() .create(true) .append(true) .read(true) .open(&path)?; Ok(Self(file)) } pub fn append(&mut self, selected: usize, ids: I) -> io::Result<()> where I: IntoIterator, I::Item: Into, I::IntoIter: ExactSizeIterator, }