#[async_trait::async_trait]
pub trait ProfilerService: std::fmt::Debug + Send + Sync {
async fn create_profile(
&self,
req: crate::model::CreateProfileRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Profile>>;
async fn create_offline_profile(
&self,
req: crate::model::CreateOfflineProfileRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Profile>>;
async fn update_profile(
&self,
req: crate::model::UpdateProfileRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Profile>>;
}
#[async_trait::async_trait]
impl<T: super::ProfilerService> ProfilerService for T {
async fn create_profile(
&self,
req: crate::model::CreateProfileRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Profile>> {
T::create_profile(self, req, options).await
}
async fn create_offline_profile(
&self,
req: crate::model::CreateOfflineProfileRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Profile>> {
T::create_offline_profile(self, req, options).await
}
async fn update_profile(
&self,
req: crate::model::UpdateProfileRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Profile>> {
T::update_profile(self, req, options).await
}
}
#[async_trait::async_trait]
pub trait ExportService: std::fmt::Debug + Send + Sync {
async fn list_profiles(
&self,
req: crate::model::ListProfilesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListProfilesResponse>>;
}
#[async_trait::async_trait]
impl<T: super::ExportService> ExportService for T {
async fn list_profiles(
&self,
req: crate::model::ListProfilesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListProfilesResponse>> {
T::list_profiles(self, req, options).await
}
}