From 6d1194226d40b2269dd473a2f7b030061befe5ad Mon Sep 17 00:00:00 2001 From: Wojciech Kozlowski Date: Sat, 9 Mar 2024 18:34:56 +0100 Subject: [PATCH] Move database implementation out of core --- src/core/{database/mod.rs => database.rs} | 5 ----- src/{core => }/database/json/backend.rs | 2 +- src/{core => }/database/json/mod.rs | 0 src/{core => }/database/json/testmod.rs | 0 src/database/mod.rs | 4 ++++ src/{core => }/database/serde/deserialize.rs | 0 src/{core => }/database/serde/mod.rs | 0 src/{core => }/database/serde/serialize.rs | 0 src/lib.rs | 4 +++- src/main.rs | 7 ++----- src/tui/lib.rs | 2 +- tests/database/json.rs | 6 ++---- 12 files changed, 13 insertions(+), 17 deletions(-) rename src/core/{database/mod.rs => database.rs} (97%) rename src/{core => }/database/json/backend.rs (94%) rename src/{core => }/database/json/mod.rs (100%) rename src/{core => }/database/json/testmod.rs (100%) create mode 100644 src/database/mod.rs rename src/{core => }/database/serde/deserialize.rs (100%) rename src/{core => }/database/serde/mod.rs (100%) rename src/{core => }/database/serde/serialize.rs (100%) diff --git a/src/core/database/mod.rs b/src/core/database.rs similarity index 97% rename from src/core/database/mod.rs rename to src/core/database.rs index b3882c1..9ae7435 100644 --- a/src/core/database/mod.rs +++ b/src/core/database.rs @@ -1,10 +1,5 @@ //! Module for storing MusicHoard data in a database. -#[cfg(feature = "database-json")] -pub mod json; -#[cfg(feature = "database-json")] -mod serde; - use std::fmt; #[cfg(test)] diff --git a/src/core/database/json/backend.rs b/src/database/json/backend.rs similarity index 94% rename from src/core/database/json/backend.rs rename to src/database/json/backend.rs index 8c99542..07a0a1c 100644 --- a/src/core/database/json/backend.rs +++ b/src/database/json/backend.rs @@ -3,7 +3,7 @@ use std::fs; use std::path::PathBuf; -use crate::core::database::json::IJsonDatabaseBackend; +use crate::database::json::IJsonDatabaseBackend; /// JSON database backend that uses a local file for persistent storage. pub struct JsonDatabaseFileBackend { diff --git a/src/core/database/json/mod.rs b/src/database/json/mod.rs similarity index 100% rename from src/core/database/json/mod.rs rename to src/database/json/mod.rs diff --git a/src/core/database/json/testmod.rs b/src/database/json/testmod.rs similarity index 100% rename from src/core/database/json/testmod.rs rename to src/database/json/testmod.rs diff --git a/src/database/mod.rs b/src/database/mod.rs new file mode 100644 index 0000000..8bc349c --- /dev/null +++ b/src/database/mod.rs @@ -0,0 +1,4 @@ +#[cfg(feature = "database-json")] +pub mod json; +#[cfg(feature = "database-json")] +mod serde; diff --git a/src/core/database/serde/deserialize.rs b/src/database/serde/deserialize.rs similarity index 100% rename from src/core/database/serde/deserialize.rs rename to src/database/serde/deserialize.rs diff --git a/src/core/database/serde/mod.rs b/src/database/serde/mod.rs similarity index 100% rename from src/core/database/serde/mod.rs rename to src/database/serde/mod.rs diff --git a/src/core/database/serde/serialize.rs b/src/database/serde/serialize.rs similarity index 100% rename from src/core/database/serde/serialize.rs rename to src/database/serde/serialize.rs diff --git a/src/lib.rs b/src/lib.rs index 6277808..bd42e99 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,11 +1,13 @@ //! MusicHoard - a music collection manager. mod core; +pub mod database; pub use core::collection; -pub use core::database; pub use core::library; +pub use core::database::{IDatabase, NullDatabase}; + pub use core::musichoard::{ musichoard::{MusicHoard, NoDatabase, NoLibrary}, musichoard_builder::MusicHoardBuilder, diff --git a/src/main.rs b/src/main.rs index 5c3dfa5..f147da0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,10 +10,7 @@ use ratatui::{backend::CrosstermBackend, Terminal}; use structopt::StructOpt; use musichoard::{ - database::{ - json::{backend::JsonDatabaseFileBackend, JsonDatabase}, - IDatabase, NullDatabase, - }, + database::json::{backend::JsonDatabaseFileBackend, JsonDatabase}, library::{ beets::{ executor::{ssh::BeetsLibrarySshExecutor, BeetsLibraryProcessExecutor}, @@ -21,7 +18,7 @@ use musichoard::{ }, ILibrary, NullLibrary, }, - MusicHoardBuilder, NoDatabase, NoLibrary, + IDatabase, MusicHoardBuilder, NoDatabase, NoLibrary, NullDatabase, }; use tui::{App, EventChannel, EventHandler, EventListener, Tui, Ui}; diff --git a/src/tui/lib.rs b/src/tui/lib.rs index 990851c..cca8c3a 100644 --- a/src/tui/lib.rs +++ b/src/tui/lib.rs @@ -1,4 +1,4 @@ -use musichoard::{collection::Collection, database::IDatabase, library::ILibrary, MusicHoard}; +use musichoard::{collection::Collection, library::ILibrary, IDatabase, MusicHoard}; #[cfg(test)] use mockall::automock; diff --git a/tests/database/json.rs b/tests/database/json.rs index f2c6c52..1f31de8 100644 --- a/tests/database/json.rs +++ b/tests/database/json.rs @@ -5,10 +5,8 @@ use tempfile::NamedTempFile; use musichoard::{ collection::{album::AlbumDate, artist::Artist, Collection}, - database::{ - json::{backend::JsonDatabaseFileBackend, JsonDatabase}, - IDatabase, - }, + database::json::{backend::JsonDatabaseFileBackend, JsonDatabase}, + IDatabase, }; use crate::testlib::COLLECTION;