libwmctl/model/
map_state.rs1use std::fmt;
2use x11rb::protocol::xproto;
3
4use crate::{WmCtlError, WmCtlResult};
5
6#[allow(dead_code)]
8#[derive(Debug, Clone, PartialEq)]
9pub enum MapState {
10 Unmapped,
11 Unviewable,
12 Viewable,
13}
14
15impl MapState {
17 pub fn from(val: u32) -> WmCtlResult<MapState> {
18 if val == xproto::MapState::UNMAPPED.into() {
19 Ok(MapState::Unmapped)
20 } else if val == xproto::MapState::UNVIEWABLE.into() {
21 Ok(MapState::Unviewable)
22 } else if val == xproto::MapState::VIEWABLE.into() {
23 Ok(MapState::Viewable)
24 } else {
25 Err(WmCtlError::InvalidWinMap(val).into())
26 }
27 }
28}
29
30impl fmt::Display for MapState {
32 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
33 match self {
34 _ => write!(f, "{}", format!("{:?}", self).to_lowercase()),
35 }
36 }
37}