manticoresearch 1.1.0-alpha

Сlient for Manticore Search.
Documentation
use std::sync::Arc;

use hyper;
use hyper_util::client::legacy::connect::Connect;
use super::configuration::Configuration;

pub struct APIClient {
    index_api: Box<dyn crate::apis::IndexApi>,
    search_api: Box<dyn crate::apis::SearchApi>,
    utils_api: Box<dyn crate::apis::UtilsApi>,
}

impl APIClient {
    pub fn new<C: Connect>(configuration: Configuration<C>) -> APIClient
        where C: Clone + std::marker::Send + Sync + 'static {
        let rc = Arc::new(configuration);

        APIClient {
            index_api: Box::new(crate::apis::IndexApiClient::new(rc.clone())),
            search_api: Box::new(crate::apis::SearchApiClient::new(rc.clone())),
            utils_api: Box::new(crate::apis::UtilsApiClient::new(rc.clone())),
        }
    }

    pub fn index_api(&self) -> &dyn crate::apis::IndexApi{
        self.index_api.as_ref()
    }

    pub fn search_api(&self) -> &dyn crate::apis::SearchApi{
        self.search_api.as_ref()
    }

    pub fn utils_api(&self) -> &dyn crate::apis::UtilsApi{
        self.utils_api.as_ref()
    }

}