Skip to main content

winprint_ext/ticket/
predefined_page_orientation.rs

1use super::{document::NS_PSK, PredefinedName};
2use std::str::FromStr;
3use strum::EnumString;
4use xml::name::OwnedName;
5
6#[derive(EnumString, Debug, PartialEq, Eq, Hash, Clone, Copy)]
7#[allow(missing_docs)]
8/// Represents a predefined page orientation.
9pub enum PredefinedPageOrientation {
10    Portrait,
11    Landscape,
12    ReversePortrait,
13    ReverseLandscape,
14}
15
16impl PredefinedName for PredefinedPageOrientation {
17    /// Get predefined media name from the given name.
18    fn from_name(name: &OwnedName) -> Option<Self> {
19        if name.namespace_ref() == Some(NS_PSK) {
20            Self::from_str(name.local_name.as_str()).ok()
21        } else {
22            None
23        }
24    }
25}