gmaps_static/
marker_appearence.rs

1use crate::{MarkerIcon, MarkerStyle};
2use std::fmt;
3
4#[derive(Clone)]
5pub enum MarkerAppearence<S: AsRef<str> + Clone> {
6    Icon(MarkerIcon<S>),
7    Styled(MarkerStyle),
8}
9
10impl<S: AsRef<str> + Clone> From<MarkerIcon<S>> for MarkerAppearence<S> {
11    fn from(marker_icon: MarkerIcon<S>) -> Self {
12        MarkerAppearence::Icon(marker_icon)
13    }
14}
15
16impl<S: AsRef<str> + Clone> From<MarkerStyle> for MarkerAppearence<S> {
17    fn from(marker_style: MarkerStyle) -> Self {
18        MarkerAppearence::Styled(marker_style)
19    }
20}
21
22impl<S: AsRef<str> + Clone> fmt::Display for MarkerAppearence<S> {
23    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
24        use MarkerAppearence::*;
25        write!(
26            f,
27            "{}",
28            match &self {
29                Icon(i) => i.to_string(),
30                Styled(s) => s.to_string(),
31            }
32        )
33    }
34}