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,
capabilities: Vec<Capability>,
) -> Result<(), Error>
pub async fn add_example_node( &self, project_root: &Path, component_name: &str, capabilities: Vec<Capability>, ) -> Result<(), Error>
Add an example node from the catalog to the project, updating Cargo.toml and mecha10.json as needed.
capabilities is this node’s declared Capability set as resolved by the caller from
the live node catalog (catalog_client::fetch_node_catalog’s
NodeCatalogEntry::capabilities) - threaded straight through to
Self::add_node_to_config rather than read back off a local config.json, so
mecha10 init/mecha10 init --update no longer depend on
mecha10_robot_config::pull_node_catalog_configs having already written that file (it
silently no-ops if one already exists there, which could otherwise strand capabilities
at [] forever).
Sourcepub async fn sync_node_capabilities(
&self,
project_root: &Path,
component_name: &str,
is_monorepo_node: bool,
capabilities: Vec<Capability>,
) -> Result<(), Error>
pub async fn sync_node_capabilities( &self, project_root: &Path, component_name: &str, is_monorepo_node: bool, capabilities: Vec<Capability>, ) -> Result<(), Error>
Backfill capabilities onto a node that’s already fully scaffolded on disk (component
files already written, Cargo.toml/workspace member already present), 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 upsert one field 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