pub trait Cr50ProxyInterface: Send + Sync {
type CcdGetInfoResponseFut: Future<Output = Result<Cr50CcdGetInfoResult, Error>> + Send;
type CcdLockResponseFut: Future<Output = Result<Cr50CcdLockResult, Error>> + Send;
type CcdOpenResponseFut: Future<Output = Result<Cr50CcdOpenResult, Error>> + Send;
type CcdUnlockResponseFut: Future<Output = Result<Cr50CcdUnlockResult, Error>> + Send;
type WpGetStateResponseFut: Future<Output = Result<Cr50WpGetStateResult, Error>> + Send;
// Required methods
fn ccd_get_info(&self) -> Self::CcdGetInfoResponseFut;
fn ccd_lock(&self) -> Self::CcdLockResponseFut;
fn ccd_open(&self, password: Option<&str>) -> Self::CcdOpenResponseFut;
fn ccd_unlock(&self, password: Option<&str>) -> Self::CcdUnlockResponseFut;
fn wp_get_state(&self) -> Self::WpGetStateResponseFut;
}