#[async_trait::async_trait]
pub trait TranscoderService: std::fmt::Debug + Send + Sync {
async fn create_job(
&self,
req: crate::model::CreateJobRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Job>>;
async fn list_jobs(
&self,
req: crate::model::ListJobsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListJobsResponse>>;
async fn get_job(
&self,
req: crate::model::GetJobRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Job>>;
async fn delete_job(
&self,
req: crate::model::DeleteJobRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn create_job_template(
&self,
req: crate::model::CreateJobTemplateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::JobTemplate>>;
async fn list_job_templates(
&self,
req: crate::model::ListJobTemplatesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListJobTemplatesResponse>>;
async fn get_job_template(
&self,
req: crate::model::GetJobTemplateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::JobTemplate>>;
async fn delete_job_template(
&self,
req: crate::model::DeleteJobTemplateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
}
#[async_trait::async_trait]
impl<T: super::TranscoderService> TranscoderService for T {
async fn create_job(
&self,
req: crate::model::CreateJobRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Job>> {
T::create_job(self, req, options).await
}
async fn list_jobs(
&self,
req: crate::model::ListJobsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListJobsResponse>> {
T::list_jobs(self, req, options).await
}
async fn get_job(
&self,
req: crate::model::GetJobRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Job>> {
T::get_job(self, req, options).await
}
async fn delete_job(
&self,
req: crate::model::DeleteJobRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_job(self, req, options).await
}
async fn create_job_template(
&self,
req: crate::model::CreateJobTemplateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::JobTemplate>> {
T::create_job_template(self, req, options).await
}
async fn list_job_templates(
&self,
req: crate::model::ListJobTemplatesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListJobTemplatesResponse>> {
T::list_job_templates(self, req, options).await
}
async fn get_job_template(
&self,
req: crate::model::GetJobTemplateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::JobTemplate>> {
T::get_job_template(self, req, options).await
}
async fn delete_job_template(
&self,
req: crate::model::DeleteJobTemplateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_job_template(self, req, options).await
}
}