1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use crate::RelativePosition; use std::fmt; #[derive(Clone)] pub enum IconAnchor { Relative(RelativePosition), Absolute(i32, i32), } impl From<RelativePosition> for IconAnchor { fn from(position: RelativePosition) -> Self { IconAnchor::Relative(position) } } impl From<(i32, i32)> for IconAnchor { fn from((x, y): (i32, i32)) -> Self { IconAnchor::Absolute(x, y) } } impl fmt::Display for IconAnchor { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { use IconAnchor::*; match self { Relative(position) => write!(f, "{}", position.to_string()), Absolute(x, y) => write!(f, "{},{}", x, y), } } }