objectiveai_api/functions/profiles/computations/
objectiveai.rs1use crate::ctx;
4use futures::{Stream, TryStreamExt};
5use std::sync::Arc;
6
7pub struct ObjectiveAiClient {
9 pub client: Arc<objectiveai::HttpClient>,
11}
12
13impl ObjectiveAiClient {
14 pub fn new(client: Arc<objectiveai::HttpClient>) -> Self {
16 Self { client }
17 }
18}
19
20#[async_trait::async_trait]
21impl<CTXEXT> super::Client<CTXEXT> for ObjectiveAiClient
22where
23 CTXEXT: Send + Sync + 'static,
24{
25 async fn create_unary(
26 &self,
27 _ctx: ctx::Context<CTXEXT>,
28 request: Arc<
29 objectiveai::functions::profiles::computations::request::Request,
30 >,
31 ) -> Result<
32 objectiveai::functions::profiles::computations::response::unary::FunctionProfileComputation,
33 objectiveai::error::ResponseError,
34 >{
35 objectiveai::functions::profiles::computations::compute_profile_unary(
36 &self.client,
37 (*request).clone(),
38 )
39 .await
40 .map_err(|e| objectiveai::error::ResponseError::from(&e))
41 }
42
43 async fn create_streaming(
44 &self,
45 _ctx: ctx::Context<CTXEXT>,
46 request: Arc<
47 objectiveai::functions::profiles::computations::request::Request,
48 >,
49 ) -> Result<
50 impl Stream<Item = Result<
51 objectiveai::functions::profiles::computations::response::streaming::FunctionProfileComputationChunk,
52 objectiveai::error::ResponseError,
53 >>
54 + Send
55 + 'static,
56 objectiveai::error::ResponseError,
57 >{
58 let stream = objectiveai::functions::profiles::computations::compute_profile_streaming(
59 &self.client,
60 (*request).clone(),
61 )
62 .await
63 .map_err(|e| objectiveai::error::ResponseError::from(&e))?;
64 Ok(stream.map_err(|e| objectiveai::error::ResponseError::from(&e)))
65 }
66}