use super::overlay_state::OverlayState;
#[derive(Debug)]
pub enum MountMode {
ReadWrite,
ReadOnly,
OverlayMemory(OverlayState),
}
impl MountMode {
pub fn from_mode_str(mode: &str) -> Result<Self, String> {
match mode {
"read-only" => Ok(Self::ReadOnly),
"read-write" => Ok(Self::ReadWrite),
"overlay" => Ok(Self::OverlayMemory(OverlayState::new())),
other => Err(format!(
"Invalid mode '{other}', expected 'read-only', 'read-write', or 'overlay'"
)),
}
}
#[must_use]
pub fn as_str(&self) -> &'static str {
match self {
Self::ReadWrite => "read-write",
Self::ReadOnly => "read-only",
Self::OverlayMemory(_) => "overlay",
}
}
}