gmaps_static/
marker_size.rs

1use std::fmt;
2use std::str::FromStr;
3
4pub static TINY: &MarkerSize = &MarkerSize::Tiny;
5pub static MID: &MarkerSize = &MarkerSize::Mid;
6pub static SMALL: &MarkerSize = &MarkerSize::Small;
7
8#[derive(Clone)]
9pub enum MarkerSize {
10    Tiny,
11    Mid,
12    Small,
13}
14
15impl fmt::Display for MarkerSize {
16    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
17        use MarkerSize::*;
18        write!(
19            f,
20            "{}",
21            match &self {
22                Tiny => "tiny",
23                Mid => "mid",
24                Small => "small",
25            }
26        )
27    }
28}
29
30impl FromStr for MarkerSize {
31    type Err = String;
32
33    fn from_str(input: &str) -> Result<MarkerSize, Self::Err> {
34        use MarkerSize::*;
35        match input {
36            "tiny" => Ok(Tiny),
37            "mid" => Ok(Mid),
38            "small" => Ok(Small),
39            x => Err(format!("Invalid value for MarkerSize. Given '{}'", x)),
40        }
41    }
42}