Skip to main content

umya_spreadsheet/structs/
chart_type.rs

1use std::str::FromStr;
2
3use super::EnumTrait;
4#[derive(Clone, Debug, Default)]
5pub enum ChartType {
6    #[default]
7    LineChart,
8    Line3DChart,
9    PieChart,
10    Pie3DChart,
11    DoughnutChart,
12    ScatterChart,
13    BarChart,
14    Bar3DChart,
15    RadarChart,
16    BubbleChart,
17    AreaChart,
18    Area3DChart,
19    OfPieChart,
20}
21impl EnumTrait for ChartType {
22    #[inline]
23    fn value_string(&self) -> &str {
24        match &self {
25            Self::LineChart => "line_chart",
26            Self::Line3DChart => "line_3d_chart",
27            Self::PieChart => "pie_chart",
28            Self::Pie3DChart => "pie_3d_chart",
29            Self::DoughnutChart => "doughnut_chart",
30            Self::ScatterChart => "scatter_chart",
31            Self::BarChart => "bar_chart",
32            Self::Bar3DChart => "bar_3d_chart",
33            Self::RadarChart => "radar_chart",
34            Self::BubbleChart => "bubble_chart",
35            Self::AreaChart => "area_chart",
36            Self::Area3DChart => "area_3d_chart",
37            Self::OfPieChart => "of_pie_chart",
38        }
39    }
40}
41impl FromStr for ChartType {
42    type Err = ();
43
44    #[inline]
45    fn from_str(input: &str) -> Result<Self, Self::Err> {
46        match input {
47            "line_chart" => Ok(Self::LineChart),
48            "line_3d_chart" => Ok(Self::Line3DChart),
49            "pie_chart" => Ok(Self::PieChart),
50            "pie_3d_chart" => Ok(Self::Pie3DChart),
51            "doughnut_chart" => Ok(Self::DoughnutChart),
52            "scatter_chart" => Ok(Self::ScatterChart),
53            "bar_chart" => Ok(Self::BarChart),
54            "bar_3d_chart" => Ok(Self::Bar3DChart),
55            "radar_chart" => Ok(Self::RadarChart),
56            "bubble_chart" => Ok(Self::BubbleChart),
57            "area_chart" => Ok(Self::AreaChart),
58            "area_3d_chart" => Ok(Self::Area3DChart),
59            "of_pie_chart" => Ok(Self::OfPieChart),
60            _ => Err(()),
61        }
62    }
63}