mod builder;
pub mod group_order;
pub mod sort_order;
pub mod tag;
pub mod version;
pub use self::{tag::Tag, version::Version};
use self::builder::Builder;
use super::{Inner, Map, OtherFields};
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub struct Header {
pub(crate) version: Version,
}
impl Inner for Header {
type StandardTag = tag::Standard;
type Builder = Builder;
}
impl Map<Header> {
pub fn new(version: Version) -> Self {
Self {
inner: Header { version },
other_fields: OtherFields::new(),
}
}
pub fn version(&self) -> Version {
self.inner.version
}
pub fn version_mut(&mut self) -> &mut Version {
&mut self.inner.version
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default() {
let header = Map::<Header>::default();
assert_eq!(header.version(), Version::default());
}
}