Skip to main content

objectiveai_api/functions/profiles/computations/
client.rs

1//! Trait for Profile computation (training).
2
3use crate::ctx;
4use futures::Stream;
5use std::sync::Arc;
6
7/// Client for computing (training) Profiles.
8#[async_trait::async_trait]
9pub trait Client<CTXEXT> {
10    /// Computes a Profile and returns the complete result.
11    async fn create_unary(
12        &self,
13        ctx: ctx::Context<CTXEXT>,
14        request: Arc<objectiveai::functions::profiles::computations::request::Request>,
15    ) -> Result<
16        objectiveai::functions::profiles::computations::response::unary::FunctionProfileComputation,
17        objectiveai::error::ResponseError,
18    >;
19
20    /// Computes a Profile with streaming progress updates.
21    async fn create_streaming(
22        &self,
23        ctx: ctx::Context<CTXEXT>,
24        request: Arc<objectiveai::functions::profiles::computations::request::Request>,
25    ) -> Result<
26        impl Stream<Item = Result<
27            objectiveai::functions::profiles::computations::response::streaming::FunctionProfileComputationChunk,
28            objectiveai::error::ResponseError,
29        >>
30            + Send
31            + 'static,
32        objectiveai::error::ResponseError,
33    >;
34}