#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub struct NotificationQueueState {
pub next_sequence: u64,
pub head_position: u64,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct NotificationQueueEntry {
pub sequence: u64,
pub process_id: i32,
pub channel: String,
pub payload: String,
}
#[derive(Clone, Copy, PartialEq, Eq)]
pub struct NotificationQueueEntryRef<'a> {
pub sequence: u64,
pub process_id: i32,
pub channel: &'a str,
pub payload: &'a str,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct NotificationQueueScan {
pub visited: usize,
pub next_sequence: u64,
pub exhausted: bool,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct NotificationListenerRow {
pub owner_id: [u8; 16],
pub session_id: u64,
pub process_id: i32,
pub wake_port: u16,
pub channels: Vec<String>,
pub transaction_open: bool,
pub next_sequence: u64,
pub position: u64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub struct NotificationListenerKey {
pub owner_id: [u8; 16],
pub session_id: u64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct NotificationListenerMetadata {
pub key: NotificationListenerKey,
pub process_id: i32,
pub wake_port: u16,
pub transaction_open: bool,
pub next_sequence: u64,
pub position: u64,
}