cyaxon_authifier/database/
mod.rs1use std::ops::Deref;
2
3use self::{definition::AbstractDatabase};
4
5pub mod definition;
6
7#[derive(Debug)]
8pub enum Migration {
9 M2022_06_03EnsureUpToSpec,
10 M2022_06_09AddIndexForDeletion,
11 #[cfg(debug_assertions)]
12 WipeAll,
13}
14
15mod dummy;
16
17pub use dummy::DummyDb;
18
19#[cfg(feature = "database-mongodb")]
20mod mongo;
21
22#[cfg(feature = "database-mongodb")]
23pub use mongo::MongoDb;
24
25#[derive(Clone)]
26pub enum Database {
27 Dummy(DummyDb),
28 #[cfg(feature = "database-mongodb")]
29 MongoDb(mongo::MongoDb),
30}
31
32impl Default for Database {
33 fn default() -> Self {
34 Self::Dummy(Default::default())
35 }
36}
37
38impl Deref for Database {
39 type Target = dyn AbstractDatabase;
40
41 fn deref(&self) -> &Self::Target {
42 match self {
43 Database::Dummy(dummy) => dummy,
44 #[cfg(feature = "database-mongodb")]
45 Database::MongoDb(mongo) => mongo,
46 }
47 }
48}