Skip to main content

InitService

Struct InitService 

Source
pub struct InitService;

Implementations§

Source§

impl InitService

Source

pub fn new() -> InitService

Create a new InitService

Source

pub async fn create_project_directories(&self, path: &Path) -> Result<(), Error>

Create all the necessary directories for a new Mecha10 project.

Source

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).

Source

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

Source§

fn default() -> InitService

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more