pub trait Module {
// Required method
fn name(&self) -> &str;
// Provided methods
fn dependencies(&self) -> Vec<String> { ... }
fn entities(&self) -> Vec<EntityInfo> { ... }
fn view_controllers(&self) -> Vec<Box<dyn ViewController>> { ... }
fn window_controllers(&self) -> Vec<Box<dyn WindowController>> { ... }
fn extend_model(&self, _root: &mut ModelNode) { ... }
fn update_generated(&self, _root: &mut ModelNode) { ... }
fn model_difference(&self) -> Option<&'static str> { ... }
fn initial_records(
&self,
_space: &mut dyn ObjectSpace,
) -> Result<(), String> { ... }
}Expand description
A part of an application: what it adds, in one place. Modules stack, each over those it depends on.
Required Methods§
Provided Methods§
Sourcefn dependencies(&self) -> Vec<String>
fn dependencies(&self) -> Vec<String>
The modules that have to come before it, by name.
Sourcefn entities(&self) -> Vec<EntityInfo>
fn entities(&self) -> Vec<EntityInfo>
The entities it declares.
Sourcefn view_controllers(&self) -> Vec<Box<dyn ViewController>>
fn view_controllers(&self) -> Vec<Box<dyn ViewController>>
New controllers for a frame; each frame has its own.
Sourcefn window_controllers(&self) -> Vec<Box<dyn WindowController>>
fn window_controllers(&self) -> Vec<Box<dyn WindowController>>
New window controllers for a frame.
Sourcefn extend_model(&self, _root: &mut ModelNode)
fn extend_model(&self, _root: &mut ModelNode)
Adds nodes and settings to the generated model. What comes from code is not a difference, so a person’s own settings still win over it.
Sourcefn update_generated(&self, _root: &mut ModelNode)
fn update_generated(&self, _root: &mut ModelNode)
Changes what was generated, once every module added its part.
Sourcefn model_difference(&self) -> Option<&'static str>
fn model_difference(&self) -> Option<&'static str>
Its layer of the model, as JSON.
Sourcefn initial_records(&self, _space: &mut dyn ObjectSpace) -> Result<(), String>
fn initial_records(&self, _space: &mut dyn ObjectSpace) -> Result<(), String>
Puts in place the records it needs, when an application opens on its storage. It runs every time, so it looks before adding. The commit is up to whoever calls it.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".