use crate::{AgentError, Session, SessionConfig};
pub trait Backend: Send + Sync {
type Config: Send + Sync + 'static;
type Session: Session + 'static;
fn name(&self) -> &'static str;
fn session(
&self,
config: SessionConfig<Self::Config>,
) -> impl std::future::Future<Output = Result<Self::Session, AgentError>> + Send;
fn resume(
&self,
session_id: &str,
config: SessionConfig<Self::Config>,
) -> impl std::future::Future<Output = Result<Self::Session, AgentError>> + Send;
}