pub trait Provider: Send + Sync {
// Required methods
fn get_metadata(
&self,
request: GetMetadataRequest,
) -> BoxFuture<'_, Result<GetMetadataResponse, Status>>;
fn observe(
&self,
request: ObserveRequest,
) -> BoxFuture<'_, Result<ObserveResponse, Status>>;
fn capture(
&self,
request: CaptureRequest,
) -> BoxFuture<'_, Result<CaptureResponse, Status>>;
fn plan(
&self,
request: PlanRequest,
) -> BoxFuture<'_, Result<PlanResponse, Status>>;
fn apply(
&self,
request: ApplyRequest,
) -> BoxFuture<'_, Result<BoxStream<'static, Result<ApplyResponse, Status>>, Status>>;
fn verify(
&self,
request: VerifyRequest,
) -> BoxFuture<'_, Result<VerifyResponse, Status>>;
fn cancel(
&self,
request: CancelRequest,
) -> BoxFuture<'_, Result<CancelResponse, Status>>;
}Expand description
Asynchronous provider boundary shared by linked first-party implementations and the external protocol adapter.
The versioned wire models remain the stable provider-owned envelopes; the in-process path avoids transport without inventing a second DTO hierarchy.