#![allow(
missing_docs,
trivial_casts,
unused_variables,
unused_mut,
unused_imports,
unused_extern_crates,
non_camel_case_types
)]
#![allow(unused_imports, unused_attributes)]
#![allow(clippy::derive_partial_eq_without_eq, clippy::blacklisted_name)]
use async_trait::async_trait;
use futures::Stream;
use serde::{Deserialize, Serialize};
use std::error::Error;
use std::task::{Context, Poll};
use swagger::{ApiError, ContextWrapper};
type ServiceError = Box<dyn Error + Send + Sync + 'static>;
pub const BASE_PATH: &str = "";
pub const API_VERSION: &str = "1.0.0";
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub enum GetTaskListResponse {
ListOfRunningTasks(models::TaskListResponse),
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[must_use]
pub enum GetTaskLogByIdResponse {
InvalidHandle(models::GeneralError),
TheLogFetched(Vec<models::GetTaskLogResponseInner>),
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[must_use]
pub enum PauseTaskByIdResponse {
FailedToPause(models::GeneralError),
InvalidHandle(models::GeneralError),
StatusOfPausingTheTask(models::TaskStatus),
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[must_use]
pub enum ResumeTaskByIdResponse {
FailedToResume(models::GeneralError),
InvalidHandle(models::GeneralError),
StatusOfTheTask(models::TaskStatus),
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[must_use]
pub enum StartTaskResponse {
InvalidArguments(models::GeneralError),
ListOfRunningTasks(models::StartTask200Response),
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[must_use]
pub enum StopTaskByIdResponse {
StatusOfStoppingTheTask(serde_json::Value),
InvalidHandle(models::GeneralError),
FailedToTerminate(models::GeneralError),
}
#[async_trait]
#[allow(clippy::too_many_arguments, clippy::ptr_arg)]
pub trait Api<C: Send + Sync> {
fn poll_ready(
&self,
_cx: &mut Context,
) -> Poll<Result<(), Box<dyn Error + Send + Sync + 'static>>> {
Poll::Ready(Ok(()))
}
async fn get_task_list(&self, context: &C) -> Result<GetTaskListResponse, ApiError>;
async fn get_task_log_by_id(
&self,
get_task_log_request: models::GetTaskLogRequest,
context: &C,
) -> Result<GetTaskLogByIdResponse, ApiError>;
async fn pause_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
context: &C,
) -> Result<PauseTaskByIdResponse, ApiError>;
async fn resume_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
context: &C,
) -> Result<ResumeTaskByIdResponse, ApiError>;
async fn start_task(
&self,
start_task_request: models::StartTaskRequest,
context: &C,
) -> Result<StartTaskResponse, ApiError>;
async fn stop_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
context: &C,
) -> Result<StopTaskByIdResponse, ApiError>;
}
#[async_trait]
#[allow(clippy::too_many_arguments, clippy::ptr_arg)]
pub trait ApiNoContext<C: Send + Sync> {
fn poll_ready(
&self,
_cx: &mut Context,
) -> Poll<Result<(), Box<dyn Error + Send + Sync + 'static>>>;
fn context(&self) -> &C;
async fn get_task_list(&self) -> Result<GetTaskListResponse, ApiError>;
async fn get_task_log_by_id(
&self,
get_task_log_request: models::GetTaskLogRequest,
) -> Result<GetTaskLogByIdResponse, ApiError>;
async fn pause_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
) -> Result<PauseTaskByIdResponse, ApiError>;
async fn resume_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
) -> Result<ResumeTaskByIdResponse, ApiError>;
async fn start_task(
&self,
start_task_request: models::StartTaskRequest,
) -> Result<StartTaskResponse, ApiError>;
async fn stop_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
) -> Result<StopTaskByIdResponse, ApiError>;
}
pub trait ContextWrapperExt<C: Send + Sync>
where
Self: Sized,
{
fn with_context(self, context: C) -> ContextWrapper<Self, C>;
}
impl<T: Api<C> + Send + Sync, C: Clone + Send + Sync> ContextWrapperExt<C> for T {
fn with_context(self: T, context: C) -> ContextWrapper<T, C> {
ContextWrapper::<T, C>::new(self, context)
}
}
#[async_trait]
impl<T: Api<C> + Send + Sync, C: Clone + Send + Sync> ApiNoContext<C> for ContextWrapper<T, C> {
fn poll_ready(&self, cx: &mut Context) -> Poll<Result<(), ServiceError>> {
self.api().poll_ready(cx)
}
fn context(&self) -> &C {
ContextWrapper::context(self)
}
async fn get_task_list(&self) -> Result<GetTaskListResponse, ApiError> {
let context = self.context().clone();
self.api().get_task_list(&context).await
}
async fn get_task_log_by_id(
&self,
get_task_log_request: models::GetTaskLogRequest,
) -> Result<GetTaskLogByIdResponse, ApiError> {
let context = self.context().clone();
self.api()
.get_task_log_by_id(get_task_log_request, &context)
.await
}
async fn pause_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
) -> Result<PauseTaskByIdResponse, ApiError> {
let context = self.context().clone();
self.api()
.pause_task_by_id(simple_id_request, &context)
.await
}
async fn resume_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
) -> Result<ResumeTaskByIdResponse, ApiError> {
let context = self.context().clone();
self.api()
.resume_task_by_id(simple_id_request, &context)
.await
}
async fn start_task(
&self,
start_task_request: models::StartTaskRequest,
) -> Result<StartTaskResponse, ApiError> {
let context = self.context().clone();
self.api().start_task(start_task_request, &context).await
}
async fn stop_task_by_id(
&self,
simple_id_request: models::SimpleIdRequest,
) -> Result<StopTaskByIdResponse, ApiError> {
let context = self.context().clone();
self.api()
.stop_task_by_id(simple_id_request, &context)
.await
}
}
#[cfg(feature = "client")]
pub mod client;
#[cfg(feature = "client")]
pub use client::Client;
#[cfg(feature = "server")]
pub mod server;
#[cfg(feature = "server")]
pub use self::server::Service;
#[cfg(feature = "server")]
pub mod context;
pub mod models;
#[cfg(any(feature = "client", feature = "server"))]
pub(crate) mod header;