/*
 * FastAPI
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.1.0
 * 
 * Generated by: https://openapi-generator.tech
 */

use std::rc::Rc;
use std::borrow::Borrow;

use hyper;
use serde_json;
use futures::Future;

use super::{Error, configuration};
use super::request as __internal_request;

pub struct TextTextWordAlignmentApiClient<C: hyper::client::Connect> {
    configuration: Rc<configuration::Configuration<C>>,
}

impl<C: hyper::client::Connect> TextTextWordAlignmentApiClient<C> {
    pub fn new(configuration: Rc<configuration::Configuration<C>>) -> TextTextWordAlignmentApiClient<C> {
        TextTextWordAlignmentApiClient {
            configuration: configuration,
        }
    }
}

pub trait TextTextWordAlignmentApi {
    fn apply_text_text_word_alignment_post(&self, input_string_language_1: &str, input_string_language_2: &str, model: &str) -> Box<Future<Item = Value, Error = Error<serde_json::Value>>>;
    fn get_versions_text_text_word_alignment_get(&self, ) -> Box<Future<Item = Value, Error = Error<serde_json::Value>>>;
}


impl<C: hyper::client::Connect>TextTextWordAlignmentApi for TextTextWordAlignmentApiClient<C> {
    fn apply_text_text_word_alignment_post(&self, input_string_language_1: &str, input_string_language_2: &str, model: &str) -> Box<Future<Item = Value, Error = Error<serde_json::Value>>> {
        __internal_request::Request::new(hyper::Method::Post, "/text/text/word-alignment/".to_string())
            .with_query_param("input_string_language_1".to_string(), input_string_language_1.to_string())
            .with_query_param("input_string_language_2".to_string(), input_string_language_2.to_string())
            .with_query_param("model".to_string(), model.to_string())
            .execute(self.configuration.borrow())
    }

    fn get_versions_text_text_word_alignment_get(&self, ) -> Box<Future<Item = Value, Error = Error<serde_json::Value>>> {
        __internal_request::Request::new(hyper::Method::Get, "/text/text/word-alignment/".to_string())
            .execute(self.configuration.borrow())
    }

}
