reasoninglayer 0.1.2

Rust client SDK for the Reasoning Layer API
Documentation
//! Row polymorphism operations.

use crate::error::Error;
use crate::http::HttpClient;
use crate::types::common::RequestOptions;
use crate::types::row::{
    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
    }
}