use anyhow::Result;
use std::path::Path;
pub trait Repo {
fn insert_ignored_words(&mut self, words: &[&str]) -> Result<()>;
fn add_extension(&mut self, ext: &str) -> Result<()>;
fn add_file(&mut self, full_path: &str) -> Result<()>;
fn known_extension(&self, ext: &str) -> Result<bool>;
fn known_file(&self, full_path: &str) -> Result<bool>;
fn skip_file_name(&mut self, filename: &str) -> Result<()>;
fn skip_full_path(&mut self, full_path: &str) -> Result<()>;
fn is_skipped(&self, path: &Path) -> Result<bool>;
fn add_ignored(&mut self, word: &str) -> Result<i32>;
fn add_ignored_for_extension(&mut self, word: &str, ext: &str) -> Result<()>;
fn add_ignored_for_file(&mut self, word: &str, file: &str) -> Result<()>;
fn is_ignored(&self, word: &str) -> Result<bool>;
fn remove_ignored(&mut self, word: &str) -> Result<()>;
fn remove_ignored_for_extension(&mut self, word: &str, ext: &str) -> Result<()>;
fn remove_ignored_for_file(&mut self, word: &str, path: &str) -> Result<()>;
fn lookup_word(&self, word: &str, file: &Path) -> Result<bool>;
}