mod hash_id;
mod package;
mod user;
mod version;
pub use hash_id::*;
pub use package::*;
pub use user::*;
pub use version::*;
use super::*;
#[cfg(feature = "server")]
pub mod tables {
use super::*;
use redb::MultimapTableDefinition;
use redb::TableDefinition;
type NanoId<'a> = &'a str;
pub const AUTH_TOKEN_TABLE: TableDefinition<NanoId, (NanoId, u64)> =
TableDefinition::new("auth_tokens");
pub const USER_TABLE: TableDefinition<NanoId, UserModel> = TableDefinition::new("users");
pub const USERNAME_USER_ID_TABLE: TableDefinition<&str, NanoId> =
TableDefinition::new("username_user_id");
pub const PACKAGE_TABLE: TableDefinition<NanoId, PackageModel> =
TableDefinition::new("packages");
pub const PACKAGE_NAME_TABLE: TableDefinition<&str, NanoId> =
TableDefinition::new("package_names");
pub const PACKAGE_VERSION_NAME_TABLE: TableDefinition<(NanoId, &str), HashId> =
TableDefinition::new("package_version_name");
pub const PACKAGE_VERSION_TABLE: MultimapTableDefinition<NanoId, HashId> =
MultimapTableDefinition::new("package_versions");
pub const VERSION_TABLE: TableDefinition<HashId, PackageVersionModel> =
TableDefinition::new("versions");
pub const GIT_REFS_TABLE: TableDefinition<NanoId, &str> = TableDefinition::new("git_refs");
pub const GIT_PACK_TABLE: TableDefinition<&str, Vec<u8>> = TableDefinition::new("git_packs");
}
#[cfg(feature = "server")]
pub use tables::*;