Skip to main content

haste_operation_executor/
traits.rs

1use 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}