gmaps_static/
marker_appearence.rs1use 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}