use crate::{TagHeader, TagType};
use multiboot2_common::{MaybeDynSized, Tag};
#[derive(Debug)]
#[repr(C, align(8))]
pub struct EndTag {
header: TagHeader,
}
impl Default for EndTag {
fn default() -> Self {
Self {
header: TagHeader::new(Self::ID, size_of::<Self>() as u32),
}
}
}
impl MaybeDynSized for EndTag {
type Header = TagHeader;
const BASE_SIZE: usize = size_of::<Self>();
}
impl Tag for EndTag {
type IDType = TagType;
const ID: TagType = TagType::End;
}
#[cfg(test)]
mod tests {
use super::*;
use core::mem::transmute;
#[test]
fn test_end_tag_size() {
unsafe {
transmute::<[u8; 8], EndTag>([0u8; 8]);
}
}
}