embedded-exfat 0.4.0

ExFAT filesystem library with async support, mainly focusing on embedded system
Documentation
use crate::types::ClusterID;

#[derive(Copy, Clone, Debug)]
pub(crate) enum Entry {
    Next(ClusterID),
    BadCluster,
    Last,
}

impl Into<u32> for Entry {
    fn into(self) -> u32 {
        match self {
            Self::Next(next) => next.into(),
            Self::BadCluster => 0xFFFFFFF7,
            Self::Last => 0xFFFFFFFF,
        }
    }
}

impl TryFrom<u32> for Entry {
    type Error = u32;
    fn try_from(value: u32) -> Result<Self, u32> {
        match value {
            2..=0xFFFFFFF6 => Ok(Self::Next(value.into())),
            0xFFFFFFF7 => Ok(Self::BadCluster),
            0xFFFFFFFF => Ok(Self::Last),
            _ => Err(value),
        }
    }
}