pub struct InitService;Implementations§
Source§impl InitService
impl InitService
Sourcepub fn new() -> InitService
pub fn new() -> InitService
Create a new InitService
Sourcepub async fn create_project_directories(&self, path: &Path) -> Result<(), Error>
pub async fn create_project_directories(&self, path: &Path) -> Result<(), Error>
Create all the necessary directories for a new Mecha10 project.
Sourcepub async fn add_example_node(
&self,
project_root: &Path,
component_name: &str,
) -> Result<(), Error>
pub async fn add_example_node( &self, project_root: &Path, component_name: &str, ) -> Result<(), Error>
Add an example node from the catalog to the project, updating Cargo.toml and mecha10.json as needed.
Per-node capabilities no longer exist - the caller (handlers/init.rs) is responsible
for recomputing ProjectConfig::capabilities (the flattened top-level field) once, after
its whole node-add loop finishes, via mecha10_cli_core::types::project::recompute_capabilities.
Sourcepub async fn sync_node_capabilities(
&self,
project_root: &Path,
component_name: &str,
is_monorepo_node: bool,
) -> Result<(), Error>
pub async fn sync_node_capabilities( &self, project_root: &Path, component_name: &str, is_monorepo_node: bool, ) -> Result<(), Error>
Ensure a node that’s already fully scaffolded on disk (component files already written,
Cargo.toml/workspace member already present) also has a nodes map entry in
mecha10.json, without re-running any of Self::add_example_node’s file-writing
steps.
mecha10 init --update needs this: re-running the full add_example_node scaffold for
a node that already has a local config.json would needlessly rewrite its component
files (clobbering anything the project author customized) just to ensure one entry in
mecha10.json. This only touches the nodes map entry, via
Self::add_node_to_config’s upsert rules.
Trait Implementations§
Source§impl Default for InitService
impl Default for InitService
Source§fn default() -> InitService
fn default() -> InitService
Auto Trait Implementations§
impl Freeze for InitService
impl RefUnwindSafe for InitService
impl Send for InitService
impl Sync for InitService
impl Unpin for InitService
impl UnsafeUnpin 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