use crate::error::Error;
use crate::http::HttpClient;
use crate::types::common::RequestOptions;
use crate::api_spec::{
DynamicQueryRequest, DynamicQueryResponse, RowIntegrateRequest, RowIntegrateResponse,
RowSearchRequest, RowSearchResponse, RowSimilarityRequest, RowSimilarityResponse,
RowUnifyRequest, RowUnifyResponse,
};
#[derive(Debug, Clone)]
pub struct RowClient {
http: HttpClient,
}
impl RowClient {
pub(crate) fn new(http: HttpClient) -> Self {
Self { http }
}
pub async fn search(
&self,
request: RowSearchRequest,
options: Option<&RequestOptions>,
) -> Result<RowSearchResponse, Error> {
self.http.post("/row/search", &request, options).await
}
pub async fn unify(
&self,
request: RowUnifyRequest,
options: Option<&RequestOptions>,
) -> Result<RowUnifyResponse, Error> {
self.http.post("/row/unify", &request, options).await
}
pub async fn similarity(
&self,
request: RowSimilarityRequest,
options: Option<&RequestOptions>,
) -> Result<RowSimilarityResponse, Error> {
self.http.post("/row/similarity", &request, options).await
}
pub async fn integrate(
&self,
request: RowIntegrateRequest,
options: Option<&RequestOptions>,
) -> Result<RowIntegrateResponse, Error> {
self.http.post("/row/integrate", &request, options).await
}
pub async fn query(
&self,
request: DynamicQueryRequest,
options: Option<&RequestOptions>,
) -> Result<DynamicQueryResponse, Error> {
self.http.post("/row/query", &request, options).await
}
}