use zb_core::IeeeAddress;
use zb_hw::Ncp;
use crate::{Coordinator, Error};
pub trait AddressTranslation {
fn short_id_to_ieee_address(
&self,
short_id: u16,
) -> impl Future<Output = Result<IeeeAddress, Error>> + Send;
fn ieee_address_to_short_id(
&self,
ieee_address: IeeeAddress,
) -> impl Future<Output = Result<u16, Error>> + Send;
}
impl AddressTranslation for Coordinator {
async fn short_id_to_ieee_address(&self, short_id: u16) -> Result<IeeeAddress, Error> {
Ok(Ncp::short_id_to_ieee_address(&self.ncp, short_id).await?)
}
async fn ieee_address_to_short_id(&self, ieee_address: IeeeAddress) -> Result<u16, Error> {
Ok(Ncp::ieee_address_to_short_id(&self.ncp, ieee_address).await?)
}
}