pub struct ExecutorServiceImpl {
atlas: AtlasClient,
provider_id: String,
runtime: PlanRuntime,
}Expand description
AtlasClient is cheap to clone — each Execute RPC clones it so per-plan
dispatch runs without serialising on a single mutex.
Fields§
§atlas: AtlasClient§provider_id: StringExecutor’s own provider_id. Two roles:
- consumer_id passed to atlas on every ConnectCapability so the channel record reflects who is using each downstream provider.
- self-detection: when a CapabilityCall in the plan targets this provider_id, dispatch short-circuits to the in-process builtin handlers instead of going through MCP loopback.
runtime: PlanRuntimeImplementations§
Source§impl ExecutorServiceImpl
impl ExecutorServiceImpl
pub fn new(atlas: AtlasClient, provider_id: String) -> Self
Trait Implementations§
Source§impl Clone for ExecutorServiceImpl
impl Clone for ExecutorServiceImpl
Source§fn clone(&self) -> ExecutorServiceImpl
fn clone(&self) -> ExecutorServiceImpl
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl RobonixSystemExecutorCancelAllPlans for ExecutorServiceImpl
impl RobonixSystemExecutorCancelAllPlans for ExecutorServiceImpl
fn cancel_all<'life0, 'async_trait>(
&'life0 self,
_request: Request<CancelAllRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CancelAllResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl RobonixSystemExecutorControlPlan for ExecutorServiceImpl
impl RobonixSystemExecutorControlPlan for ExecutorServiceImpl
fn control_plan<'life0, 'async_trait>(
&'life0 self,
request: Request<ControlPlanRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ControlPlanResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl RobonixSystemExecutorExecute for ExecutorServiceImpl
impl RobonixSystemExecutorExecute for ExecutorServiceImpl
Source§type ExecuteStream = ReceiverStream<Result<RtdlEvent, Status>>
type ExecuteStream = ReceiverStream<Result<RtdlEvent, Status>>
Server streaming response type for the Execute method.
fn execute<'life0, 'async_trait>(
&'life0 self,
request: Request<Plan>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ExecuteStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl RobonixSystemExecutorGetHealth for ExecutorServiceImpl
impl RobonixSystemExecutorGetHealth for ExecutorServiceImpl
fn get_module_health<'life0, 'async_trait>(
&'life0 self,
_request: Request<GetModuleHealthRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetModuleHealthResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl RobonixSystemExecutorListActivePlans for ExecutorServiceImpl
impl RobonixSystemExecutorListActivePlans for ExecutorServiceImpl
fn list_active_plans<'life0, 'async_trait>(
&'life0 self,
_request: Request<ListActivePlansRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ListActivePlansResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl !Freeze for ExecutorServiceImpl
impl !RefUnwindSafe for ExecutorServiceImpl
impl Send for ExecutorServiceImpl
impl Sync for ExecutorServiceImpl
impl Unpin for ExecutorServiceImpl
impl UnsafeUnpin for ExecutorServiceImpl
impl !UnwindSafe for ExecutorServiceImpl
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].