Remove some usage of anyhow

This commit is contained in:
Antoine Gersant 2022-11-21 17:00:15 -08:00
parent edc7170b89
commit 98d00d261d
3 changed files with 32 additions and 8 deletions

View file

@ -1,4 +1,3 @@
use anyhow::Result;
use log::{error, info}; use log::{error, info};
use std::time; use std::time;
@ -7,14 +6,29 @@ mod collector;
mod inserter; mod inserter;
mod traverser; mod traverser;
use super::*; use crate::app::index::Index;
use crate::app::vfs;
use crate::db;
use cleaner::Cleaner; use cleaner::Cleaner;
use collector::Collector; use collector::Collector;
use inserter::Inserter; use inserter::Inserter;
use traverser::Traverser; use traverser::Traverser;
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error(transparent)]
IndexClean(#[from] cleaner::Error),
#[error(transparent)]
Database(#[from] diesel::result::Error),
#[error(transparent)]
DatabaseConnection(#[from] db::Error),
#[error(transparent)]
Vfs(#[from] vfs::Error),
}
impl Index { impl Index {
pub fn update(&self) -> Result<()> { pub fn update(&self) -> Result<(), Error> {
let start = time::Instant::now(); let start = time::Instant::now();
info!("Beginning library index update"); info!("Beginning library index update");

View file

@ -1,13 +1,24 @@
use anyhow::*;
use diesel::prelude::*; use diesel::prelude::*;
use rayon::prelude::*; use rayon::prelude::*;
use std::path::Path; use std::path::Path;
use crate::app::vfs; use crate::app::vfs;
use crate::db::{directories, songs, DB}; use crate::db::{self, directories, songs, DB};
const INDEX_BUILDING_CLEAN_BUFFER_SIZE: usize = 500; // Deletions in each transaction const INDEX_BUILDING_CLEAN_BUFFER_SIZE: usize = 500; // Deletions in each transaction
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error(transparent)]
Database(#[from] diesel::result::Error),
#[error(transparent)]
DatabaseConnection(#[from] db::Error),
#[error(transparent)]
ThreadPoolBuilder(#[from] rayon::ThreadPoolBuildError),
#[error(transparent)]
Vfs(#[from] vfs::Error),
}
pub struct Cleaner { pub struct Cleaner {
db: DB, db: DB,
vfs_manager: vfs::Manager, vfs_manager: vfs::Manager,
@ -18,7 +29,7 @@ impl Cleaner {
Self { db, vfs_manager } Self { db, vfs_manager }
} }
pub fn clean(&self) -> Result<()> { pub fn clean(&self) -> Result<(), Error> {
let vfs = self.vfs_manager.get_vfs()?; let vfs = self.vfs_manager.get_vfs()?;
let all_directories: Vec<String> = { let all_directories: Vec<String> = {

View file

@ -1,4 +1,3 @@
use anyhow::Result;
use simplelog::LevelFilter; use simplelog::LevelFilter;
use std::path::PathBuf; use std::path::PathBuf;
@ -28,7 +27,7 @@ impl Manager {
} }
} }
pub fn parse(&self, input: &[String]) -> Result<CLIOptions> { pub fn parse(&self, input: &[String]) -> Result<CLIOptions, getopts::Fail> {
let matches = self.protocol.parse(input)?; let matches = self.protocol.parse(input)?;
Ok(CLIOptions { Ok(CLIOptions {