use puniyu_account::AccountInfo;
use puniyu_adapter_types::{AdapterInfo, SendMsgType};
use puniyu_contact::ContactType;
use puniyu_error::Result;
use puniyu_message::Message;
use async_trait::async_trait;
mod onebot;
pub use onebot::OneBotAdapterApi;
#[async_trait]
pub trait AdapterApi: Send + Sync {
async fn send_message(
&self,
contact: &ContactType<'_>,
message: &Message,
) -> Result<SendMsgType>;
fn adapter_info(&self) -> AdapterInfo;
fn account_info(&self) -> AccountInfo;
fn as_onebot(&self) -> Option<&dyn OneBotAdapterApi> { None }
}