From 6178a3035303328fa22b047584c34ad641dd67de Mon Sep 17 00:00:00 2001 From: Wojciech Kozlowski Date: Sat, 9 Mar 2024 19:08:09 +0100 Subject: [PATCH] Make exports more explicit --- src/core/{ => interface}/database/mod.rs | 0 src/core/{ => interface}/library/mod.rs | 0 src/core/{ => interface}/library/testmod.rs | 2 +- src/core/interface/mod.rs | 2 ++ src/core/mod.rs | 3 +-- src/core/musichoard/mod.rs | 5 ++++- src/core/musichoard/musichoard.rs | 12 ++++++++---- src/core/musichoard/musichoard_builder.rs | 5 ++--- src/database/json/mod.rs | 2 +- src/database/serde/deserialize.rs | 2 +- src/lib.rs | 5 +---- src/library/beets/executor.rs | 2 +- src/library/beets/mod.rs | 4 ++-- src/main.rs | 6 +++++- src/tui/lib.rs | 5 ++++- tests/database/json.rs | 2 +- tests/library/beets.rs | 2 +- tests/library/testmod.rs | 2 +- 18 files changed, 36 insertions(+), 25 deletions(-) rename src/core/{ => interface}/database/mod.rs (100%) rename src/core/{ => interface}/library/mod.rs (100%) rename src/core/{ => interface}/library/testmod.rs (99%) create mode 100644 src/core/interface/mod.rs diff --git a/src/core/database/mod.rs b/src/core/interface/database/mod.rs similarity index 100% rename from src/core/database/mod.rs rename to src/core/interface/database/mod.rs diff --git a/src/core/library/mod.rs b/src/core/interface/library/mod.rs similarity index 100% rename from src/core/library/mod.rs rename to src/core/interface/library/mod.rs diff --git a/src/core/library/testmod.rs b/src/core/interface/library/testmod.rs similarity index 99% rename from src/core/library/testmod.rs rename to src/core/interface/library/testmod.rs index 09e56b8..2649422 100644 --- a/src/core/library/testmod.rs +++ b/src/core/interface/library/testmod.rs @@ -2,7 +2,7 @@ use once_cell::sync::Lazy; use crate::core::{ collection::{album::AlbumMonth, track::TrackFormat}, - library::Item, + interface::library::Item, }; pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { diff --git a/src/core/interface/mod.rs b/src/core/interface/mod.rs new file mode 100644 index 0000000..2b9c4cf --- /dev/null +++ b/src/core/interface/mod.rs @@ -0,0 +1,2 @@ +pub mod database; +pub mod library; diff --git a/src/core/mod.rs b/src/core/mod.rs index 8739da3..8899a5d 100644 --- a/src/core/mod.rs +++ b/src/core/mod.rs @@ -1,6 +1,5 @@ pub mod collection; -pub mod database; -pub mod library; +pub mod interface; pub mod musichoard; #[cfg(test)] diff --git a/src/core/musichoard/mod.rs b/src/core/musichoard/mod.rs index d12bc43..41dc276 100644 --- a/src/core/musichoard/mod.rs +++ b/src/core/musichoard/mod.rs @@ -6,7 +6,10 @@ pub mod musichoard_builder; use std::fmt::{self, Display}; -use crate::core::{collection, database, library}; +use crate::core::{ + collection, + interface::{database, library}, +}; /// Error type for `musichoard`. #[derive(Debug, PartialEq, Eq)] diff --git a/src/core/musichoard/musichoard.rs b/src/core/musichoard/musichoard.rs index 86d2ba8..2eafef3 100644 --- a/src/core/musichoard/musichoard.rs +++ b/src/core/musichoard/musichoard.rs @@ -8,8 +8,10 @@ use crate::core::{ track::{Track, TrackId, TrackNum, TrackQuality}, Collection, MergeCollections, }, - database::IDatabase, - library::{ILibrary, Item, Query}, + interface::{ + database::IDatabase, + library::{ILibrary, Item, Query}, + }, musichoard::Error, }; @@ -468,8 +470,10 @@ mod tests { use crate::core::{ collection::{artist::ArtistId, musicbrainz::MusicBrainz}, - database::{self, MockIDatabase}, - library::{self, testmod::LIBRARY_ITEMS, MockILibrary}, + interface::{ + database::{self, MockIDatabase}, + library::{self, testmod::LIBRARY_ITEMS, MockILibrary}, + }, testmod::{FULL_COLLECTION, LIBRARY_COLLECTION}, }; diff --git a/src/core/musichoard/musichoard_builder.rs b/src/core/musichoard/musichoard_builder.rs index af48922..5b1bc5f 100644 --- a/src/core/musichoard/musichoard_builder.rs +++ b/src/core/musichoard/musichoard_builder.rs @@ -1,7 +1,6 @@ use crate::{ core::{ - database::IDatabase, - library::ILibrary, + interface::{database::IDatabase, library::ILibrary}, musichoard::musichoard::{MusicHoard, NoDatabase, NoLibrary}, }, Error, @@ -79,7 +78,7 @@ impl MusicHoardBuilder { #[cfg(test)] mod tests { - use crate::core::{database::NullDatabase, library::NullLibrary}; + use crate::core::interface::{database::NullDatabase, library::NullLibrary}; use super::*; diff --git a/src/database/json/mod.rs b/src/database/json/mod.rs index 5eec609..80cc6c7 100644 --- a/src/database/json/mod.rs +++ b/src/database/json/mod.rs @@ -7,7 +7,7 @@ use mockall::automock; use crate::core::{ collection::Collection, - database::{IDatabase, LoadError, SaveError}, + interface::database::{IDatabase, LoadError, SaveError}, }; use super::serde::{deserialize::DeserializeDatabase, serialize::SerializeDatabase}; diff --git a/src/database/serde/deserialize.rs b/src/database/serde/deserialize.rs index 718601e..55bfbe9 100644 --- a/src/database/serde/deserialize.rs +++ b/src/database/serde/deserialize.rs @@ -9,7 +9,7 @@ use crate::core::{ musicbrainz::MusicBrainz, Collection, }, - database::LoadError, + interface::database::LoadError, }; #[derive(Debug, Deserialize)] diff --git a/src/lib.rs b/src/lib.rs index 4364b61..af8688a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,10 +5,7 @@ pub mod database; pub mod library; pub use core::collection; - -// 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::interface; pub use core::musichoard::{ musichoard::{MusicHoard, NoDatabase, NoLibrary}, diff --git a/src/library/beets/executor.rs b/src/library/beets/executor.rs index 2563083..68e799e 100644 --- a/src/library/beets/executor.rs +++ b/src/library/beets/executor.rs @@ -8,7 +8,7 @@ use std::{ str, }; -use crate::core::library::Error; +use crate::core::interface::library::Error; use crate::library::beets::IBeetsLibraryExecutor; const BEET_DEFAULT: &str = "beet"; diff --git a/src/library/beets/mod.rs b/src/library/beets/mod.rs index d67d90d..90c5307 100644 --- a/src/library/beets/mod.rs +++ b/src/library/beets/mod.rs @@ -8,7 +8,7 @@ use mockall::automock; use crate::core::{ collection::track::TrackFormat, - library::{Error, Field, ILibrary, Item, Query}, + interface::library::{Error, Field, ILibrary, Item, Query}, }; macro_rules! list_format_separator { @@ -201,7 +201,7 @@ mod testmod; mod tests { use mockall::predicate; - use crate::{collection::album::AlbumMonth, core::library::testmod::LIBRARY_ITEMS}; + use crate::{collection::album::AlbumMonth, core::interface::library::testmod::LIBRARY_ITEMS}; use super::*; use testmod::LIBRARY_BEETS; diff --git a/src/main.rs b/src/main.rs index 7ae1961..87e3140 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,11 +11,15 @@ use structopt::StructOpt; use musichoard::{ database::json::{backend::JsonDatabaseFileBackend, JsonDatabase}, + interface::{ + database::{IDatabase, NullDatabase}, + library::{ILibrary, NullLibrary}, + }, library::beets::{ executor::{ssh::BeetsLibrarySshExecutor, BeetsLibraryProcessExecutor}, BeetsLibrary, }, - IDatabase, ILibrary, MusicHoardBuilder, NoDatabase, NoLibrary, NullDatabase, NullLibrary, + MusicHoardBuilder, NoDatabase, NoLibrary, }; use tui::{App, EventChannel, EventHandler, EventListener, Tui, Ui}; diff --git a/src/tui/lib.rs b/src/tui/lib.rs index f518b63..d75ddc8 100644 --- a/src/tui/lib.rs +++ b/src/tui/lib.rs @@ -1,4 +1,7 @@ -use musichoard::{collection::Collection, IDatabase, ILibrary, MusicHoard}; +use musichoard::{ + collection::Collection, interface::database::IDatabase, interface::library::ILibrary, + MusicHoard, +}; #[cfg(test)] use mockall::automock; diff --git a/tests/database/json.rs b/tests/database/json.rs index 1f31de8..a72657a 100644 --- a/tests/database/json.rs +++ b/tests/database/json.rs @@ -6,7 +6,7 @@ use tempfile::NamedTempFile; use musichoard::{ collection::{album::AlbumDate, artist::Artist, Collection}, database::json::{backend::JsonDatabaseFileBackend, JsonDatabase}, - IDatabase, + interface::database::IDatabase, }; use crate::testlib::COLLECTION; diff --git a/tests/library/beets.rs b/tests/library/beets.rs index 32cb4ba..0a7a066 100644 --- a/tests/library/beets.rs +++ b/tests/library/beets.rs @@ -8,8 +8,8 @@ use std::{ use once_cell::sync::Lazy; use musichoard::{ + interface::library::{Field, ILibrary, Item, Query}, library::beets::{executor::BeetsLibraryProcessExecutor, BeetsLibrary}, - Field, ILibrary, Item, Query, }; use crate::library::testmod::LIBRARY_ITEMS; diff --git a/tests/library/testmod.rs b/tests/library/testmod.rs index 4a7d576..aa6e671 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}, - Item, + interface::library::Item, }; pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec {