trait Sealed {}
impl<Candidate, Requirement> Sealed for (Candidate, Requirement) {}
#[cfg_attr(nightly_doc, doc(notable_trait))]
#[expect(private_bounds, reason = "Sealed")]
pub trait MemAligned: Sealed {
#[must_use]
fn is_compatible() -> bool;
fn assert_compatibility();
}
impl<Candidate, Requirement> MemAligned for (Candidate, Requirement) {
fn is_compatible() -> bool {
align_of::<Candidate>() <= align_of::<Requirement>()
}
fn assert_compatibility() {
assert!(
Self::is_compatible(),
"`Candidate`'s alignment ({}) exceeds `Requirement`'s alignment ({}).",
align_of::<Candidate>(),
align_of::<Requirement>(),
);
}
}