#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum ZoomMode {
#[default]
Default,
FitHeight,
FitWidth,
FitRect,
}
impl ZoomMode {
#[must_use]
pub fn as_str(self) -> &'static str {
match self {
Self::Default => "Default",
Self::FitHeight => "FitHeight",
Self::FitWidth => "FitWidth",
Self::FitRect => "FitRect",
}
}
}
impl std::fmt::Display for ZoomMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default() {
assert_eq!(ZoomMode::default(), ZoomMode::Default);
}
#[test]
fn test_as_str() {
assert_eq!(ZoomMode::FitHeight.as_str(), "FitHeight");
assert_eq!(ZoomMode::FitRect.to_string(), "FitRect");
}
}