pub struct ComponentCatalogService { /* private fields */ }Expand description
Component catalog service for managing available components
§Examples
ⓘ
use mecha10_cli::services::ComponentCatalogService;
let service = ComponentCatalogService::new();
// Get all drivers
let drivers = service.get_drivers();
for driver in drivers {
println!("Driver: {} - {}", driver.name, driver.description);
}
// Search for camera components
let cameras = service.search("camera");
// Get a specific component
if let Some(component) = service.get("realsense-camera") {
println!("Found: {}", component.name);
}Implementations§
Source§impl ComponentCatalogService
impl ComponentCatalogService
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new component catalog service
Initializes the catalog with all built-in components.
Sourcepub fn get_all(&self) -> Vec<&Component>
pub fn get_all(&self) -> Vec<&Component>
Get all available components
Returns a vector of all components in the catalog.
Sourcepub fn get_drivers(&self) -> Vec<&Component>
pub fn get_drivers(&self) -> Vec<&Component>
Get all driver components
Returns only components of type Driver.
Sourcepub fn get_packages(&self) -> Vec<&Component>
pub fn get_packages(&self) -> Vec<&Component>
Get all package components
Returns only components of type Package.
Sourcepub fn get_behaviors(&self) -> Vec<&Component>
pub fn get_behaviors(&self) -> Vec<&Component>
Get all behavior components
Returns only components of type Behavior.
Sourcepub fn get_stacks(&self) -> Vec<&Component>
pub fn get_stacks(&self) -> Vec<&Component>
Get all stack components
Returns only components of type Stack (pre-configured sets).
Sourcepub fn get_by_type(&self, component_type: ComponentType) -> Vec<&Component>
pub fn get_by_type(&self, component_type: ComponentType) -> Vec<&Component>
Sourcepub fn get_by_category(&self, category: &str) -> Vec<&Component>
pub fn get_by_category(&self, category: &str) -> Vec<&Component>
Sourcepub fn list_categories(&self) -> Vec<String>
pub fn list_categories(&self) -> Vec<String>
Sourcepub fn get_by_tag(&self, tag: &str) -> Vec<&Component>
pub fn get_by_tag(&self, tag: &str) -> Vec<&Component>
Get components with a specific tag
§Arguments
tag- Tag to filter by (e.g., “camera”, “lidar”, “imu”)
Sourcepub fn get_recommended_for_platform(&self, platform: &str) -> Vec<&Component>
pub fn get_recommended_for_platform(&self, platform: &str) -> Vec<&Component>
Get recommended components for a platform
Returns components commonly used with a specific robot platform.
§Arguments
platform- Platform name (e.g., “rover”, “arm”, “quadruped”)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ComponentCatalogService
impl RefUnwindSafe for ComponentCatalogService
impl Send for ComponentCatalogService
impl Sync for ComponentCatalogService
impl Unpin for ComponentCatalogService
impl UnwindSafe for ComponentCatalogService
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
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>
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 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>
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