#[non_exhaustive]pub struct ModuleManifest {
pub name: String,
pub story_display: Vec<StoryDisplayDescriptor>,
pub admin: Option<AdminSurface>,
pub http_routes: Vec<ModuleHttpRoute>,
pub runtime: Option<RuntimeSurface>,
pub events: Option<EventSurface>,
pub lifecycle: Option<LifecycleSurface>,
pub console: Vec<ConsoleSurface>,
pub console_slots: Vec<ConsoleSlot>,
pub console_contributions: Vec<ConsoleContribution>,
pub capabilities: Vec<String>,
pub dependencies: Vec<String>,
}Expand description
The serializable metadata a module exposes. Runtime config is deliberately
NOT here — it stays an internal &'static field on [crate::Module]
because the config registry needs the real (non-serde) RuntimeConfigType
to validate. Only round-trippable fields belong here.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: StringStable module name, e.g. "identity".
story_display: Vec<StoryDisplayDescriptor>Console story-display metadata.
admin: Option<AdminSurface>Admin surface: Some(AdminSurface::Schema(_)) for schema-driven CRUD,
future custom surfaces for richer module admin UI, or None for modules
with no admin surface (e.g. notifications).
http_routes: Vec<ModuleHttpRoute>Declared module-owned HTTP routes. These are metadata only until a loading-source-specific mount/proxy protocol exists.
runtime: Option<RuntimeSurface>Declared runtime behavior. These entries are manifest data only; source bindings decide how to register executable behavior.
events: Option<EventSurface>Declared event subscriptions. These entries are manifest data only; source bindings decide how to register executable behavior.
lifecycle: Option<LifecycleSurface>Declared lifecycle work. The host validates and schedules these entries; modules do not receive arbitrary startup callbacks.
console: Vec<ConsoleSurface>Declared Runtime Console surfaces provided by trusted frontend packages.
console_slots: Vec<ConsoleSlot>Declared Runtime Console extension slots owned by host or module surfaces.
console_contributions: Vec<ConsoleContribution>Declared Runtime Console slot contributions attached to host or module-owned surfaces.
capabilities: Vec<String>RESERVED SEAM — capabilities the module declares (perms/tenancy).
dependencies: Vec<String>Other modules this module requires to be installed first.
Implementations§
Source§impl ModuleManifest
impl ModuleManifest
Sourcepub fn builder(name: impl Into<String>) -> ModuleManifestBuilder
pub fn builder(name: impl Into<String>) -> ModuleManifestBuilder
Start building a manifest for name.
Trait Implementations§
Source§impl Clone for ModuleManifest
impl Clone for ModuleManifest
Source§fn clone(&self) -> ModuleManifest
fn clone(&self) -> ModuleManifest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModuleManifest
impl Debug for ModuleManifest
Source§impl<'de> Deserialize<'de> for ModuleManifest
impl<'de> Deserialize<'de> for ModuleManifest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ModuleManifest
Source§impl PartialEq for ModuleManifest
impl PartialEq for ModuleManifest
Source§fn eq(&self, other: &ModuleManifest) -> bool
fn eq(&self, other: &ModuleManifest) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ModuleManifest
impl Serialize for ModuleManifest
impl StructuralPartialEq for ModuleManifest
Auto Trait Implementations§
impl Freeze for ModuleManifest
impl RefUnwindSafe for ModuleManifest
impl Send for ModuleManifest
impl Sync for ModuleManifest
impl Unpin for ModuleManifest
impl UnsafeUnpin for ModuleManifest
impl UnwindSafe for ModuleManifest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.