use thiserror::Error;
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum SegmentError {
#[error("bad segment magic: expected b\"FTSS\"")]
BadMagic,
#[error("unsupported segment version {found} (current: {expected})")]
UnsupportedVersion { found: u16, expected: u16 },
#[error("segment checksum mismatch: expected {expected:#010x}, actual {actual:#010x}")]
ChecksumMismatch { expected: u32, actual: u32 },
#[error("segment data is truncated")]
Truncated,
#[error("term length {term_len} exceeds maximum {max}")]
TermTooLong { term_len: usize, max: usize },
}