use std::sync::Arc;
use bacnet_encoding::npdu::NpduAddress;
use bacnet_services::audit::AuditNotificationRequest;
use bacnet_types::primitives::ObjectIdentifier;
use bacnet_types::MacAddr;
pub const MAX_AUDIT_NOTIFICATION_BYTES: usize = 64 * 1024;
pub const MAX_AUDIT_NOTIFICATIONS: usize = 256;
#[derive(Debug, Clone, PartialEq)]
pub struct AuditNotificationAuthorizationContext {
pub source_mac: MacAddr,
pub source_network: Option<NpduAddress>,
pub invoke_id: u8,
pub audit_log_sink: ObjectIdentifier,
pub request: AuditNotificationRequest,
}
pub type AuditNotificationAuthorizer =
Arc<dyn Fn(&AuditNotificationAuthorizationContext) -> bool + Send + Sync>;
#[derive(Debug, Clone, PartialEq)]
pub struct UnconfirmedAuditNotificationAuthorizationContext {
pub source_mac: MacAddr,
pub source_network: Option<NpduAddress>,
pub audit_log_sink: ObjectIdentifier,
pub request: AuditNotificationRequest,
}
pub type UnconfirmedAuditNotificationAuthorizer =
Arc<dyn Fn(&UnconfirmedAuditNotificationAuthorizationContext) -> bool + Send + Sync>;