#[async_trait::async_trait]
pub trait DeliveryService: std::fmt::Debug + Send + Sync {
async fn create_delivery_vehicle(
&self,
req: crate::model::CreateDeliveryVehicleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeliveryVehicle>>;
async fn get_delivery_vehicle(
&self,
req: crate::model::GetDeliveryVehicleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeliveryVehicle>>;
async fn delete_delivery_vehicle(
&self,
req: crate::model::DeleteDeliveryVehicleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn update_delivery_vehicle(
&self,
req: crate::model::UpdateDeliveryVehicleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeliveryVehicle>>;
async fn batch_create_tasks(
&self,
req: crate::model::BatchCreateTasksRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BatchCreateTasksResponse>>;
async fn create_task(
&self,
req: crate::model::CreateTaskRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Task>>;
async fn get_task(
&self,
req: crate::model::GetTaskRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Task>>;
async fn delete_task(
&self,
req: crate::model::DeleteTaskRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn update_task(
&self,
req: crate::model::UpdateTaskRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Task>>;
async fn list_tasks(
&self,
req: crate::model::ListTasksRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListTasksResponse>>;
async fn get_task_tracking_info(
&self,
req: crate::model::GetTaskTrackingInfoRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::TaskTrackingInfo>>;
async fn list_delivery_vehicles(
&self,
req: crate::model::ListDeliveryVehiclesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListDeliveryVehiclesResponse>>;
}
#[async_trait::async_trait]
impl<T: super::DeliveryService> DeliveryService for T {
async fn create_delivery_vehicle(
&self,
req: crate::model::CreateDeliveryVehicleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeliveryVehicle>> {
T::create_delivery_vehicle(self, req, options).await
}
async fn get_delivery_vehicle(
&self,
req: crate::model::GetDeliveryVehicleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeliveryVehicle>> {
T::get_delivery_vehicle(self, req, options).await
}
async fn delete_delivery_vehicle(
&self,
req: crate::model::DeleteDeliveryVehicleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_delivery_vehicle(self, req, options).await
}
async fn update_delivery_vehicle(
&self,
req: crate::model::UpdateDeliveryVehicleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeliveryVehicle>> {
T::update_delivery_vehicle(self, req, options).await
}
async fn batch_create_tasks(
&self,
req: crate::model::BatchCreateTasksRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BatchCreateTasksResponse>> {
T::batch_create_tasks(self, req, options).await
}
async fn create_task(
&self,
req: crate::model::CreateTaskRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Task>> {
T::create_task(self, req, options).await
}
async fn get_task(
&self,
req: crate::model::GetTaskRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Task>> {
T::get_task(self, req, options).await
}
async fn delete_task(
&self,
req: crate::model::DeleteTaskRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_task(self, req, options).await
}
async fn update_task(
&self,
req: crate::model::UpdateTaskRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Task>> {
T::update_task(self, req, options).await
}
async fn list_tasks(
&self,
req: crate::model::ListTasksRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListTasksResponse>> {
T::list_tasks(self, req, options).await
}
async fn get_task_tracking_info(
&self,
req: crate::model::GetTaskTrackingInfoRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::TaskTrackingInfo>> {
T::get_task_tracking_info(self, req, options).await
}
async fn list_delivery_vehicles(
&self,
req: crate::model::ListDeliveryVehiclesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListDeliveryVehiclesResponse>> {
T::list_delivery_vehicles(self, req, options).await
}
}