use crate::conductor::interface::error::InterfaceResult;
use holochain_serialized_bytes::prelude::*;
mod admin_interface;
mod app_interface;
pub use admin_interface::*;
pub use app_interface::*;
use holochain_types::prelude::InstalledAppId;
#[async_trait::async_trait]
pub trait InterfaceApi: 'static + Send + Sync + Clone {
type Auth: TryFrom<SerializedBytes, Error = SerializedBytesError>
+ Send
+ Sync
+ std::fmt::Debug;
type ApiRequest: TryFrom<SerializedBytes, Error = SerializedBytesError>
+ Send
+ Sync
+ std::fmt::Debug;
type ApiResponse: TryInto<SerializedBytes, Error = SerializedBytesError>
+ Send
+ Sync
+ std::fmt::Debug;
async fn auth(&self, auth: Self::Auth) -> InterfaceResult<InstalledAppId>;
async fn handle_request(
&self,
request: Result<Self::ApiRequest, SerializedBytesError>,
) -> InterfaceResult<Self::ApiResponse>;
}