use crate::Error;
use super::WritableLen;
#[allow(missing_docs)]
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct LegalTimeWindow {
pub(crate) is_valid: bool,
pub(crate) offset: u16,
}
impl LegalTimeWindow {
pub const MAX_OFFSET: u16 = (1 << 15) - 1;
pub fn new(is_valid: bool, offset: u16) -> Result<Self, Error> {
assert!(offset <= Self::MAX_OFFSET, "Too large offset: {}", offset);
Ok(LegalTimeWindow { is_valid, offset })
}
pub fn is_valid(&self) -> bool {
self.is_valid
}
pub fn offset(&self) -> u16 {
self.offset
}
}
impl WritableLen for LegalTimeWindow {
fn writable_len(&self) -> usize {
2
}
}