pub struct InitService;Expand description
Implementations§
Source§impl InitService
impl InitService
Sourcepub async fn create_project_directories(&self, path: &Path) -> Result<()>
pub async fn create_project_directories(&self, path: &Path) -> Result<()>
Create project directory structure
Creates all the necessary directories for a new Mecha10 project:
- nodes/ - Custom node implementations
- drivers/ - Hardware driver implementations
- types/ - Shared type definitions
- behaviors/ - Behavior tree definitions
- config/ - Configuration files
- logs/ - Runtime logs
- simulation/ - Simulation environments
- simulation/models/ - Robot physical models (for Godot)
- assets/ - Static assets for simulation and visualization
- assets/images/ - Image assets for simulation textures, UI, etc.
Sourcepub async fn add_example_node(
&self,
project_root: &Path,
component_name: &str,
) -> Result<()>
pub async fn add_example_node( &self, project_root: &Path, component_name: &str, ) -> Result<()>
Add an example node from the catalog to the project
This method:
- Searches the component catalog for the component
- Generates component files from templates (if any)
- Updates Cargo.toml (workspace members or dependencies)
- Updates mecha10.json configuration
§Arguments
project_root- Root path of the projectcomponent_name- Name of the component to add (e.g., “speaker”, “listener”)
Sourcepub async fn copy_behavior_templates(&self, project_root: &Path) -> Result<()>
pub async fn copy_behavior_templates(&self, project_root: &Path) -> Result<()>
Copy behavior tree templates from framework to project
Copies seed templates from packages/behavior-runtime/seeds/ to
{project}/behaviors/ for use with the behavior tree system.
§Arguments
project_root- Root path of the project
Sourcepub async fn copy_simulation_configs(&self, project_root: &Path) -> Result<()>
pub async fn copy_simulation_configs(&self, project_root: &Path) -> Result<()>
Copy simulation configuration files from framework to project
Copies config from packages/simulation/configs/config.json to
{project}/configs/dev/simulation/config.json.
Simulation is dev-only, so no production config is needed.
§Arguments
project_root- Root path of the project
Sourcepub async fn copy_simulation_assets(&self, project_root: &Path) -> Result<()>
pub async fn copy_simulation_assets(&self, project_root: &Path) -> Result<()>
Copy simulation asset files from framework to project
Copies image assets from packages/simulation/environments/basic_arena/assets/images/
to {project}/assets/images/
This includes cat images (aiko.jpg, phoebe.jpg) used in the basic arena environment
§Arguments
project_root- Root path of the project
Sourcepub async fn copy_all_node_configs(&self, project_root: &Path) -> Result<()>
pub async fn copy_all_node_configs(&self, project_root: &Path) -> Result<()>
Copy all default node configuration files from framework to project
Copies configs for all default nodes from packages/nodes/{node}/configs/
to {project}/configs/nodes/@mecha10/{node}/config.json
This is called during mecha10 init to set up node configs.
Skips silently if framework path is not available (standalone CLI mode).
§Arguments
project_root- Root path of the project
Sourcepub fn detect_framework_path(&self) -> Result<String>
pub fn detect_framework_path(&self) -> Result<String>
Detect the framework path for development mode
Searches for the mecha10-monorepo in the following order:
- MECHA10_FRAMEWORK_PATH environment variable
- Walking up the directory tree from current directory
This is used when creating projects in development mode to link to the local framework instead of published crates.
§Returns
The absolute path to the framework root, or an error if not found.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InitService
impl RefUnwindSafe for InitService
impl Send for InitService
impl Sync for InitService
impl Unpin for InitService
impl UnwindSafe for InitService
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more