use crate::asn1::{Frame, Version};
impl Frame {
pub const fn validate_version_compatibility(&self) -> bool {
let version = self.version;
let metadata = &self.metadata;
let integrity_ok = metadata.integrity.is_none() || version.allows_integrity();
let confidentiality_ok = metadata.confidentiality.is_none() || version.allows_confidentiality();
let priority_ok = metadata.priority.is_none() || version.allows_priority();
let lifetime_ok = metadata.lifetime.is_none() || version.allows_lifetime();
let previous_frame_ok = metadata.previous_frame.is_none() || version.allows_previous_frame();
let matrix_ok = metadata.matrix.is_none() || version.allows_matrix();
integrity_ok && confidentiality_ok && priority_ok && lifetime_ok && previous_frame_ok && matrix_ok
}
pub const fn const_validate_version_fields(version: Version, has_matrix: bool) -> bool {
!has_matrix || version.allows_matrix()
}
}