haste_operation_executor/
traits.rs1use haste_fhir_client::{FHIRClient, request::InvocationRequest};
2use haste_fhir_model::r4::generated::resources::{OperationDefinition, Parameters};
3use haste_fhir_operation_error::OperationOutcomeError;
4use std::sync::Arc;
5
6pub trait OperationExecutor {
7 fn execute_operation<
8 CTX: Clone + Send + 'static,
9 Client: FHIRClient<CTX, OperationOutcomeError> + 'static,
10 >(
11 &self,
12 context: CTX,
13 client: Arc<Client>,
14 operation: &OperationDefinition,
15 input: &InvocationRequest,
16 ) -> impl Future<Output = Result<Parameters, OperationOutcomeError>>;
17}