pub trait Module:
Send
+ Sync
+ 'static {
// Required method
fn id(&self) -> ModuleId;
// Provided methods
fn migrations(&self) -> MigrationSet { ... }
fn requires(&self) -> &'static [ModuleId] { ... }
fn requires_db_capabilities(&self) -> &'static [Capability] { ... }
fn optional_db_capabilities(&self) -> &'static [Capability] { ... }
fn register(&self, registry: &mut Registry) { ... }
fn catalogs(&self) -> &'static [(&'static str, &'static str)] { ... }
}Expand description
A registerable unit: a framework crate or an application feature/plugin.
Required Methods§
Sourcefn id(&self) -> ModuleId
fn id(&self) -> ModuleId
Stable identity, a lowercase vendor.package code. Namespaces this
module’s applied-migration history and is the target of other modules’
requires. Its string must equal the module_id of
the set returned by migrations.
Provided Methods§
Sourcefn migrations(&self) -> MigrationSet
fn migrations(&self) -> MigrationSet
This module’s migrations, in apply order. Defaults to none, for a code-only module.
Sourcefn requires(&self) -> &'static [ModuleId]
fn requires(&self) -> &'static [ModuleId]
Ids of modules whose migrations and registration must run before this module’s, so cross-module foreign keys and contributions resolve. Defaults to none.
Sourcefn requires_db_capabilities(&self) -> &'static [Capability]
fn requires_db_capabilities(&self) -> &'static [Capability]
Database capabilities this module cannot work without. The application refuses to boot if one is unavailable, with a clear error naming the module and capability, instead of failing deep inside a migration.
Sourcefn optional_db_capabilities(&self) -> &'static [Capability]
fn optional_db_capabilities(&self) -> &'static [Capability]
Database capabilities this module uses when present and does without when
absent. Query the boot-time CapabilitySet
to gate the enhanced path (for example trigram fuzzy search).
Sourcefn catalogs(&self) -> &'static [(&'static str, &'static str)]
fn catalogs(&self) -> &'static [(&'static str, &'static str)]
This module’s UI-string catalogs, as (locale, po_text) pairs, each an
include_str!’d gettext PO baked into the binary. English needs none (its
source string is the key); other locales ship a PO. The boot loader merges
them into the shared catalog store. Default: none.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".