mod server;
#[doc(inline)]
pub use server::ServerRuntime;
use std::sync::Arc;
use puniyu_account::AccountInfo;
use puniyu_adapter_api::AdapterApi;
use puniyu_adapter_types::AdapterInfo;
#[derive(Clone)]
pub struct AdapterRuntime {
info: AdapterInfo,
}
impl AdapterRuntime {
pub fn new(info: AdapterInfo) -> Self {
Self { info }
}
pub fn info(&self) -> &AdapterInfo {
&self.info
}
}
#[derive(Clone)]
pub struct BotRuntime {
adapter: AdapterRuntime,
api: Arc<dyn AdapterApi>,
}
impl BotRuntime {
pub fn new(adapter: AdapterRuntime, api: Arc<dyn AdapterApi>) -> Self {
Self { adapter, api }
}
pub fn adapter_info(&self) -> AdapterInfo {
self.api.adapter_info()
}
pub fn adapter_runtime(&self) -> &AdapterRuntime {
&self.adapter
}
pub fn account_info(&self) -> AccountInfo {
self.api.account_info()
}
pub fn api(&self) -> &dyn AdapterApi {
&*self.api
}
}