Skip to content

Commit 954295a

Browse files
committed
refactor: [#950] move DatabaseDriver to databases mod
1 parent 9be9638 commit 954295a

File tree

6 files changed

+28
-23
lines changed

6 files changed

+28
-23
lines changed

packages/primitives/src/lib.rs

-16
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,4 @@ pub enum IPVersion {
4242
#[derive(Hash, Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
4343
pub struct NumberOfBytes(pub i64);
4444

45-
/// The database management system used by the tracker.
46-
///
47-
/// Refer to:
48-
///
49-
/// - [Torrust Tracker Configuration](https://docs.rs/torrust-tracker-configuration).
50-
/// - [Torrust Tracker](https://docs.rs/torrust-tracker).
51-
///
52-
/// For more information about persistence.
53-
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, derive_more::Display, Clone)]
54-
pub enum DatabaseDriver {
55-
/// The Sqlite3 database driver.
56-
Sqlite3,
57-
/// The `MySQL` database driver.
58-
MySQL,
59-
}
60-
6145
pub type PersistentTorrents = BTreeMap<InfoHash, u32>;

src/core/databases/driver.rs

+20-3
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,37 @@
22
//!
33
//! See [`databases::driver::build`](crate::core::databases::driver::build)
44
//! function for more information.
5-
use torrust_tracker_primitives::DatabaseDriver;
5+
use serde::{Deserialize, Serialize};
66

77
use super::error::Error;
88
use super::mysql::Mysql;
99
use super::sqlite::Sqlite;
1010
use super::{Builder, Database};
1111

12+
/// The database management system used by the tracker.
13+
///
14+
/// Refer to:
15+
///
16+
/// - [Torrust Tracker Configuration](https://docs.rs/torrust-tracker-configuration).
17+
/// - [Torrust Tracker](https://docs.rs/torrust-tracker).
18+
///
19+
/// For more information about persistence.
20+
#[allow(clippy::module_name_repetitions)]
21+
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, derive_more::Display, Clone)]
22+
pub enum DatabaseDriver {
23+
/// The Sqlite3 database driver.
24+
Sqlite3,
25+
/// The `MySQL` database driver.
26+
MySQL,
27+
}
28+
1229
/// It builds a new database driver.
1330
///
1431
/// Example for `SQLite3`:
1532
///
1633
/// ```rust,no_run
1734
/// use torrust_tracker::core::databases;
18-
/// use torrust_tracker_primitives::DatabaseDriver;
35+
/// use torrust_tracker::core::databases::driver::DatabaseDriver;
1936
///
2037
/// let db_driver = DatabaseDriver::Sqlite3;
2138
/// let db_path = "./storage/tracker/lib/database/sqlite3.db".to_string();
@@ -26,7 +43,7 @@ use super::{Builder, Database};
2643
///
2744
/// ```rust,no_run
2845
/// use torrust_tracker::core::databases;
29-
/// use torrust_tracker_primitives::DatabaseDriver;
46+
/// use torrust_tracker::core::databases::driver::DatabaseDriver;
3047
///
3148
/// let db_driver = DatabaseDriver::MySQL;
3249
/// let db_path = "mysql://db_user:db_user_secret_password@mysql:3306/torrust_tracker".to_string();

src/core/databases/error.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ use std::sync::Arc;
66

77
use r2d2_mysql::mysql::UrlError;
88
use torrust_tracker_located_error::{DynError, Located, LocatedError};
9-
use torrust_tracker_primitives::DatabaseDriver;
9+
10+
use super::driver::DatabaseDriver;
1011

1112
#[derive(thiserror::Error, Debug, Clone)]
1213
pub enum Error {

src/core/databases/mysql.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ use r2d2_mysql::mysql::prelude::Queryable;
88
use r2d2_mysql::mysql::{params, Opts, OptsBuilder};
99
use r2d2_mysql::MySqlConnectionManager;
1010
use torrust_tracker_primitives::info_hash::InfoHash;
11-
use torrust_tracker_primitives::{DatabaseDriver, PersistentTorrents};
11+
use torrust_tracker_primitives::PersistentTorrents;
1212
use tracing::debug;
1313

14+
use super::driver::DatabaseDriver;
1415
use super::{Database, Error};
1516
use crate::core::auth::{self, Key};
1617
use crate::shared::bit_torrent::common::AUTH_KEY_LENGTH;

src/core/databases/sqlite.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ use async_trait::async_trait;
66
use r2d2::Pool;
77
use r2d2_sqlite::SqliteConnectionManager;
88
use torrust_tracker_primitives::info_hash::InfoHash;
9-
use torrust_tracker_primitives::{DatabaseDriver, DurationSinceUnixEpoch, PersistentTorrents};
9+
use torrust_tracker_primitives::{DurationSinceUnixEpoch, PersistentTorrents};
1010

11+
use super::driver::DatabaseDriver;
1112
use super::{Database, Error};
1213
use crate::core::auth::{self, Key};
1314

src/core/mod.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -453,15 +453,16 @@ use std::panic::Location;
453453
use std::sync::Arc;
454454
use std::time::Duration;
455455

456+
use databases::driver::DatabaseDriver;
456457
use derive_more::Constructor;
457458
use tokio::sync::mpsc::error::SendError;
458459
use torrust_tracker_clock::clock::Time;
459460
use torrust_tracker_configuration::v2::database;
460461
use torrust_tracker_configuration::{AnnouncePolicy, Core, TORRENT_PEERS_LIMIT};
461462
use torrust_tracker_primitives::info_hash::InfoHash;
463+
use torrust_tracker_primitives::peer;
462464
use torrust_tracker_primitives::swarm_metadata::SwarmMetadata;
463465
use torrust_tracker_primitives::torrent_metrics::TorrentsMetrics;
464-
use torrust_tracker_primitives::{peer, DatabaseDriver};
465466
use torrust_tracker_torrent_repository::entry::EntrySync;
466467
use torrust_tracker_torrent_repository::repository::Repository;
467468
use tracing::debug;

0 commit comments

Comments
 (0)