pub struct ModularAgent { /* private fields */ }Implementations§
Source§impl ModularAgent
impl ModularAgent
pub fn new() -> Self
Sourcepub fn init() -> Result<Self, AgentError>
pub fn init() -> Result<Self, AgentError>
Initialize ModularAgent.
Sourcepub async fn ready(&self) -> Result<(), AgentError>
pub async fn ready(&self) -> Result<(), AgentError>
Prepare ModularAgent to be ready.
Sourcepub fn new_preset(&self) -> Result<String, AgentError>
pub fn new_preset(&self) -> Result<String, AgentError>
Create a new preset. Returns the id of the new preset.
Sourcepub fn new_preset_with_name(&self, name: String) -> Result<String, AgentError>
pub fn new_preset_with_name(&self, name: String) -> Result<String, AgentError>
Create a new preset with the given name. Returns the id of the new preset.
Sourcepub fn get_preset(&self, id: &str) -> Option<Arc<AsyncMutex<Preset>>>
pub fn get_preset(&self, id: &str) -> Option<Arc<AsyncMutex<Preset>>>
Get a preset by id.
Sourcepub fn add_preset(&self, spec: PresetSpec) -> Result<String, AgentError>
pub fn add_preset(&self, spec: PresetSpec) -> Result<String, AgentError>
Add a new preset with the given spec, and returns the id of the new preset.
The ids of the given spec, including agents and connections, are changed to new unique ids.
Sourcepub fn add_preset_with_name(
&self,
spec: PresetSpec,
name: String,
) -> Result<String, AgentError>
pub fn add_preset_with_name( &self, spec: PresetSpec, name: String, ) -> Result<String, AgentError>
Add a new preset with the given name and spec, and returns the id of the new preset.
The ids of the given spec, including agents and connections, are changed to new unique ids.
Sourcepub async fn remove_preset(&self, id: &str) -> Result<(), AgentError>
pub async fn remove_preset(&self, id: &str) -> Result<(), AgentError>
Remove an preset by id.
Sourcepub async fn start_preset(&self, id: &str) -> Result<(), AgentError>
pub async fn start_preset(&self, id: &str) -> Result<(), AgentError>
Start a preset by id.
Sourcepub async fn stop_preset(&self, id: &str) -> Result<(), AgentError>
pub async fn stop_preset(&self, id: &str) -> Result<(), AgentError>
Stop a preset by id.
Sourcepub async fn open_preset_from_file(
&self,
path: &str,
name: Option<String>,
) -> Result<String, AgentError>
pub async fn open_preset_from_file( &self, path: &str, name: Option<String>, ) -> Result<String, AgentError>
Open a preset
Sourcepub async fn save_preset(&self, id: &str, path: &str) -> Result<(), AgentError>
pub async fn save_preset(&self, id: &str, path: &str) -> Result<(), AgentError>
Save a preset.
Sourcepub async fn get_preset_spec(&self, id: &str) -> Option<PresetSpec>
pub async fn get_preset_spec(&self, id: &str) -> Option<PresetSpec>
Get the current preset spec by id.
Sourcepub async fn update_preset_spec(
&self,
id: &str,
value: &Value,
) -> Result<(), AgentError>
pub async fn update_preset_spec( &self, id: &str, value: &Value, ) -> Result<(), AgentError>
Update the preset spec
Sourcepub async fn get_preset_info(&self, id: &str) -> Option<PresetInfo>
pub async fn get_preset_info(&self, id: &str) -> Option<PresetInfo>
Get info of the preset by id.
Sourcepub async fn get_preset_infos(&self) -> Vec<PresetInfo>
pub async fn get_preset_infos(&self) -> Vec<PresetInfo>
Get infos of all presets.
Sourcepub fn register_agent_definiton(&self, def: AgentDefinition)
pub fn register_agent_definiton(&self, def: AgentDefinition)
Register an agent definition.
Sourcepub fn get_agent_definitions(&self) -> AgentDefinitions
pub fn get_agent_definitions(&self) -> AgentDefinitions
Get all agent definitions.
Sourcepub fn get_agent_definition(&self, def_name: &str) -> Option<AgentDefinition>
pub fn get_agent_definition(&self, def_name: &str) -> Option<AgentDefinition>
Get an agent definition by name.
Sourcepub fn get_agent_config_specs(&self, def_name: &str) -> Option<AgentConfigSpecs>
pub fn get_agent_config_specs(&self, def_name: &str) -> Option<AgentConfigSpecs>
Get the config specs of an agent definition by name.
Sourcepub async fn get_agent_spec(&self, agent_id: &str) -> Option<AgentSpec>
pub async fn get_agent_spec(&self, agent_id: &str) -> Option<AgentSpec>
Get the agent spec by id.
Sourcepub async fn update_agent_spec(
&self,
agent_id: &str,
value: &Value,
) -> Result<(), AgentError>
pub async fn update_agent_spec( &self, agent_id: &str, value: &Value, ) -> Result<(), AgentError>
Update the agent spec by id.
Sourcepub fn new_agent_spec(&self, def_name: &str) -> Result<AgentSpec, AgentError>
pub fn new_agent_spec(&self, def_name: &str) -> Result<AgentSpec, AgentError>
Create a new agent spec from the given agent definition name.
Sourcepub async fn add_agent(
&self,
preset_id: String,
spec: AgentSpec,
) -> Result<String, AgentError>
pub async fn add_agent( &self, preset_id: String, spec: AgentSpec, ) -> Result<String, AgentError>
Add an agent to the specified preset, and returns the id of the newly added agent.
Sourcepub fn get_agent(
&self,
agent_id: &str,
) -> Option<Arc<AsyncMutex<Box<dyn Agent>>>>
pub fn get_agent( &self, agent_id: &str, ) -> Option<Arc<AsyncMutex<Box<dyn Agent>>>>
Get the agent by id.
Sourcepub async fn add_connection(
&self,
preset_id: &str,
connection: ConnectionSpec,
) -> Result<(), AgentError>
pub async fn add_connection( &self, preset_id: &str, connection: ConnectionSpec, ) -> Result<(), AgentError>
Add a connection to the specified preset.
Sourcepub async fn add_agents_and_connections(
&self,
preset_id: &str,
agents: &Vec<AgentSpec>,
connections: &Vec<ConnectionSpec>,
) -> Result<(Vec<AgentSpec>, Vec<ConnectionSpec>), AgentError>
pub async fn add_agents_and_connections( &self, preset_id: &str, agents: &Vec<AgentSpec>, connections: &Vec<ConnectionSpec>, ) -> Result<(Vec<AgentSpec>, Vec<ConnectionSpec>), AgentError>
Add agents and connections to the specified preset.
The ids of the given agents and connections are changed to new unique ids. The agents are not started automatically, even if the preset is running.
Sourcepub async fn remove_agent(
&self,
preset_id: &str,
agent_id: &str,
) -> Result<(), AgentError>
pub async fn remove_agent( &self, preset_id: &str, agent_id: &str, ) -> Result<(), AgentError>
Remove an agent from the specified preset.
If the agent is running, it will be stopped first.
Sourcepub async fn remove_connection(
&self,
preset_id: &str,
connection: &ConnectionSpec,
) -> Result<(), AgentError>
pub async fn remove_connection( &self, preset_id: &str, connection: &ConnectionSpec, ) -> Result<(), AgentError>
Remove a connection from the specified preset.
Sourcepub async fn start_agent(&self, agent_id: &str) -> Result<(), AgentError>
pub async fn start_agent(&self, agent_id: &str) -> Result<(), AgentError>
Start an agent by id.
Sourcepub async fn stop_agent(&self, agent_id: &str) -> Result<(), AgentError>
pub async fn stop_agent(&self, agent_id: &str) -> Result<(), AgentError>
Stop an agent by id.
Sourcepub async fn set_agent_configs(
&self,
agent_id: String,
configs: AgentConfigs,
) -> Result<(), AgentError>
pub async fn set_agent_configs( &self, agent_id: String, configs: AgentConfigs, ) -> Result<(), AgentError>
Set configs for an agent by id.
Sourcepub fn get_global_configs(&self, def_name: &str) -> Option<AgentConfigs>
pub fn get_global_configs(&self, def_name: &str) -> Option<AgentConfigs>
Get global configs for the agent definition by name.
Sourcepub fn set_global_configs(&self, def_name: String, configs: AgentConfigs)
pub fn set_global_configs(&self, def_name: String, configs: AgentConfigs)
Set global configs for the agent definition by name.
Sourcepub fn get_global_configs_map(&self) -> AgentConfigsMap
pub fn get_global_configs_map(&self) -> AgentConfigsMap
Get the global configs map.
Sourcepub fn set_global_configs_map(&self, new_configs_map: AgentConfigsMap)
pub fn set_global_configs_map(&self, new_configs_map: AgentConfigsMap)
Set the global configs map.
Sourcepub async fn send_agent_out(
&self,
agent_id: String,
ctx: AgentContext,
port: String,
value: AgentValue,
) -> Result<(), AgentError>
pub async fn send_agent_out( &self, agent_id: String, ctx: AgentContext, port: String, value: AgentValue, ) -> Result<(), AgentError>
Send output from an agent. (Async version)
Sourcepub fn try_send_agent_out(
&self,
agent_id: String,
ctx: AgentContext,
port: String,
value: AgentValue,
) -> Result<(), AgentError>
pub fn try_send_agent_out( &self, agent_id: String, ctx: AgentContext, port: String, value: AgentValue, ) -> Result<(), AgentError>
Send output from an agent.
Sourcepub async fn write_board_value(
&self,
name: String,
value: AgentValue,
) -> Result<(), AgentError>
pub async fn write_board_value( &self, name: String, value: AgentValue, ) -> Result<(), AgentError>
Write a value to the board.
Sourcepub async fn write_var_value(
&self,
preset_id: &str,
name: &str,
value: AgentValue,
) -> Result<(), AgentError>
pub async fn write_var_value( &self, preset_id: &str, name: &str, value: AgentValue, ) -> Result<(), AgentError>
Write a value to the variable board.
Sourcepub fn subscribe_to_event<F, T>(&self, filter_map: F) -> UnboundedReceiver<T>
pub fn subscribe_to_event<F, T>(&self, filter_map: F) -> UnboundedReceiver<T>
Subscribe to a specific type of MAKEvent.
It takes a closure that filters and maps the events, and returns an mpsc::UnboundedReceiver
that will receive only the successfully mapped events.
Trait Implementations§
Source§impl Clone for ModularAgent
impl Clone for ModularAgent
Source§fn clone(&self) -> ModularAgent
fn clone(&self) -> ModularAgent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ModularAgent
impl RefUnwindSafe for ModularAgent
impl Send for ModularAgent
impl Sync for ModularAgent
impl Unpin for ModularAgent
impl UnwindSafe for ModularAgent
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
Source§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Source§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
Source§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
Source§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
Source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
Source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
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, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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 moreSource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more