1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use crate::schema::Schema;

#[doc(hidden)]
pub mod database;
#[cfg(feature = "multiuser")]
#[doc(hidden)]
pub mod group;
#[doc(hidden)]
#[cfg(feature = "multiuser")]
pub mod role;
#[cfg(feature = "multiuser")]
#[doc(hidden)]
pub mod user;

pub use self::database::Database;
#[cfg(feature = "multiuser")]
pub use self::{group::PermissionGroup, role::Role, user::User};

/// The BonsaiDb administration schema.
#[derive(Debug, Schema)]
#[schema(name = "bonsaidb-admin", authority = "khonsulabs", core = crate)]
#[cfg_attr(feature = "multiuser", schema(collections = [Database, PermissionGroup, Role, User]))]
#[cfg_attr(not(feature = "multiuser"), schema(collections = [Database]))]
pub struct Admin;

/// The name of the admin database.
pub const ADMIN_DATABASE_NAME: &str = "_admin";