#[async_trait::async_trait]
pub trait EssentialContactsService: std::fmt::Debug + Send + Sync {
async fn create_contact(
&self,
req: crate::model::CreateContactRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Contact>>;
async fn update_contact(
&self,
req: crate::model::UpdateContactRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Contact>>;
async fn list_contacts(
&self,
req: crate::model::ListContactsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListContactsResponse>>;
async fn get_contact(
&self,
req: crate::model::GetContactRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Contact>>;
async fn delete_contact(
&self,
req: crate::model::DeleteContactRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn compute_contacts(
&self,
req: crate::model::ComputeContactsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ComputeContactsResponse>>;
async fn send_test_message(
&self,
req: crate::model::SendTestMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
}
#[async_trait::async_trait]
impl<T: super::EssentialContactsService> EssentialContactsService for T {
async fn create_contact(
&self,
req: crate::model::CreateContactRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Contact>> {
T::create_contact(self, req, options).await
}
async fn update_contact(
&self,
req: crate::model::UpdateContactRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Contact>> {
T::update_contact(self, req, options).await
}
async fn list_contacts(
&self,
req: crate::model::ListContactsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListContactsResponse>> {
T::list_contacts(self, req, options).await
}
async fn get_contact(
&self,
req: crate::model::GetContactRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Contact>> {
T::get_contact(self, req, options).await
}
async fn delete_contact(
&self,
req: crate::model::DeleteContactRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_contact(self, req, options).await
}
async fn compute_contacts(
&self,
req: crate::model::ComputeContactsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ComputeContactsResponse>> {
T::compute_contacts(self, req, options).await
}
async fn send_test_message(
&self,
req: crate::model::SendTestMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::send_test_message(self, req, options).await
}
}