pub struct Module {
pub id: String,
pub name: String,
pub version: String,
pub description: String,
pub author: Option<String>,
pub license: Option<String>,
pub dependencies: Vec<ModuleDependency>,
pub agents: Vec<String>,
pub workflows: Vec<String>,
pub templates: Vec<String>,
pub resources: Vec<String>,
pub install_path: Option<PathBuf>,
}Expand description
A Driven module containing agents, workflows, templates, and resources
Fields§
§id: StringUnique identifier for the module
name: StringHuman-readable name
version: StringSemantic version
description: StringDescription of the module
Author information
license: Option<String>License identifier
dependencies: Vec<ModuleDependency>Module dependencies
agents: Vec<String>Agent definitions provided by this module
workflows: Vec<String>Workflow definitions provided by this module
templates: Vec<String>Template definitions provided by this module
resources: Vec<String>Additional resources (files, configs, etc.)
install_path: Option<PathBuf>Installation path (set after installation)
Implementations§
Source§impl Module
impl Module
Sourcepub fn new(
id: impl Into<String>,
name: impl Into<String>,
version: impl Into<String>,
) -> Self
pub fn new( id: impl Into<String>, name: impl Into<String>, version: impl Into<String>, ) -> Self
Create a new module with required fields
Sourcepub fn with_description(self, description: impl Into<String>) -> Self
pub fn with_description(self, description: impl Into<String>) -> Self
Set the description
Sourcepub fn with_dependency(self, dep: ModuleDependency) -> Self
pub fn with_dependency(self, dep: ModuleDependency) -> Self
Add a dependency
Sourcepub fn with_agent(self, agent: impl Into<String>) -> Self
pub fn with_agent(self, agent: impl Into<String>) -> Self
Add an agent
Sourcepub fn with_workflow(self, workflow: impl Into<String>) -> Self
pub fn with_workflow(self, workflow: impl Into<String>) -> Self
Add a workflow
Sourcepub fn with_template(self, template: impl Into<String>) -> Self
pub fn with_template(self, template: impl Into<String>) -> Self
Add a template
Sourcepub fn with_resource(self, resource: impl Into<String>) -> Self
pub fn with_resource(self, resource: impl Into<String>) -> Self
Add a resource
Sourcepub fn namespaced_agent(&self, agent: &str) -> String
pub fn namespaced_agent(&self, agent: &str) -> String
Get the namespaced ID for an agent
Sourcepub fn namespaced_workflow(&self, workflow: &str) -> String
pub fn namespaced_workflow(&self, workflow: &str) -> String
Get the namespaced ID for a workflow
Sourcepub fn namespaced_template(&self, template: &str) -> String
pub fn namespaced_template(&self, template: &str) -> String
Get the namespaced ID for a template
Sourcepub fn satisfies_version(&self, version_req: &str) -> bool
pub fn satisfies_version(&self, version_req: &str) -> bool
Check if this module satisfies a version requirement
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Module
impl<'de> Deserialize<'de> for Module
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Module
Auto Trait Implementations§
impl Freeze for Module
impl RefUnwindSafe for Module
impl Send for Module
impl Sync for Module
impl Unpin for Module
impl UnsafeUnpin for Module
impl UnwindSafe for Module
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.