#![cfg(feature = "afc")]
#![cfg_attr(docsrs, doc(cfg(feature = "afc")))]
pub use aranya_fast_channels::{shm, LocalChannelId as AfcLocalChannelId};
use aranya_id::custom_id;
use serde::{Deserialize, Serialize};
use crate::{DeviceId, LabelId};
custom_id! {
pub struct AfcChannelId;
}
pub type AfcCtrl = Box<[u8]>;
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct AfcShmInfo {
pub path: Box<shm::Path>,
pub max_chans: usize,
}
#[derive(Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)]
pub struct AfcSendChannelInfo {
pub ctrl: AfcCtrl,
pub local_channel_id: AfcLocalChannelId,
pub channel_id: AfcChannelId,
}
#[derive(Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)]
pub struct AfcReceiveChannelInfo {
pub local_channel_id: AfcLocalChannelId,
pub channel_id: AfcChannelId,
pub label_id: LabelId,
pub peer_id: DeviceId,
}