diff --git a/src/core/library/mod.rs b/src/core/library/mod.rs index 7797c07..448e063 100644 --- a/src/core/library/mod.rs +++ b/src/core/library/mod.rs @@ -1,8 +1,5 @@ //! Module for interacting with the music library. -#[cfg(feature = "library-beets")] -pub mod beets; - use std::{collections::HashSet, fmt, num::ParseIntError, str::Utf8Error}; #[cfg(test)] @@ -59,26 +56,16 @@ pub enum Field { } /// A library query. Can include or exclude particular fields. -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, Default, PartialEq, Eq)] pub struct Query { - include: HashSet, - exclude: HashSet, -} - -impl Default for Query { - /// Create an empty query. - fn default() -> Self { - Self::new() - } + pub include: HashSet, + pub exclude: HashSet, } impl Query { /// Create an empty query. pub fn new() -> Self { - Query { - include: HashSet::new(), - exclude: HashSet::new(), - } + Query::default() } /// Refine the query to include a particular search term. diff --git a/src/lib.rs b/src/lib.rs index bd42e99..4364b61 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,11 +2,13 @@ mod core; pub mod database; +pub mod library; pub use core::collection; -pub use core::library; +// TODO: evaluate the exports and/or how to do them pub use core::database::{IDatabase, NullDatabase}; +pub use core::library::{Field, ILibrary, Item, NullLibrary, Query}; pub use core::musichoard::{ musichoard::{MusicHoard, NoDatabase, NoLibrary}, diff --git a/src/core/library/beets/executor.rs b/src/library/beets/executor.rs similarity index 98% rename from src/core/library/beets/executor.rs rename to src/library/beets/executor.rs index 4a9632e..0812c4d 100644 --- a/src/core/library/beets/executor.rs +++ b/src/library/beets/executor.rs @@ -8,7 +8,8 @@ use std::{ str, }; -use crate::core::library::{beets::IBeetsLibraryExecutor, Error}; +use crate::core::library::Error; +use crate::library::beets::IBeetsLibraryExecutor; const BEET_DEFAULT: &str = "beet"; diff --git a/src/core/library/beets/mod.rs b/src/library/beets/mod.rs similarity index 100% rename from src/core/library/beets/mod.rs rename to src/library/beets/mod.rs diff --git a/src/core/library/beets/testmod.rs b/src/library/beets/testmod.rs similarity index 100% rename from src/core/library/beets/testmod.rs rename to src/library/beets/testmod.rs diff --git a/src/library/mod.rs b/src/library/mod.rs new file mode 100644 index 0000000..d0ca87d --- /dev/null +++ b/src/library/mod.rs @@ -0,0 +1,2 @@ +#[cfg(feature = "library-beets")] +pub mod beets; diff --git a/src/main.rs b/src/main.rs index f147da0..7ae1961 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,14 +11,11 @@ use structopt::StructOpt; use musichoard::{ database::json::{backend::JsonDatabaseFileBackend, JsonDatabase}, - library::{ - beets::{ - executor::{ssh::BeetsLibrarySshExecutor, BeetsLibraryProcessExecutor}, - BeetsLibrary, - }, - ILibrary, NullLibrary, + library::beets::{ + executor::{ssh::BeetsLibrarySshExecutor, BeetsLibraryProcessExecutor}, + BeetsLibrary, }, - IDatabase, MusicHoardBuilder, NoDatabase, NoLibrary, NullDatabase, + IDatabase, ILibrary, MusicHoardBuilder, NoDatabase, NoLibrary, NullDatabase, NullLibrary, }; use tui::{App, EventChannel, EventHandler, EventListener, Tui, Ui}; diff --git a/src/tui/lib.rs b/src/tui/lib.rs index cca8c3a..f518b63 100644 --- a/src/tui/lib.rs +++ b/src/tui/lib.rs @@ -1,4 +1,4 @@ -use musichoard::{collection::Collection, library::ILibrary, IDatabase, MusicHoard}; +use musichoard::{collection::Collection, IDatabase, ILibrary, MusicHoard}; #[cfg(test)] use mockall::automock; diff --git a/tests/library/beets.rs b/tests/library/beets.rs index 74dcd12..32cb4ba 100644 --- a/tests/library/beets.rs +++ b/tests/library/beets.rs @@ -7,8 +7,8 @@ use std::{ use once_cell::sync::Lazy; -use musichoard::library::{ - beets::{executor::BeetsLibraryProcessExecutor, BeetsLibrary}, +use musichoard::{ + library::beets::{executor::BeetsLibraryProcessExecutor, BeetsLibrary}, Field, ILibrary, Item, Query, }; diff --git a/tests/library/testmod.rs b/tests/library/testmod.rs index cb85c50..4a7d576 100644 --- a/tests/library/testmod.rs +++ b/tests/library/testmod.rs @@ -2,7 +2,7 @@ use once_cell::sync::Lazy; use musichoard::{ collection::{album::AlbumMonth, track::TrackFormat}, - library::Item, + Item, }; pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec {