Skip to content

Commit 8696877

Browse files
committed
Defining axis serializer function
1 parent 2ab92bf commit 8696877

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

plotly/src/layout/mod.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,43 @@ use crate::{
1717
private::{NumOrString, NumOrStringCollection},
1818
};
1919

20+
21+
fn serialize_axes<S>(axes: &Option<Vec<Option<Box<Axis>>>>, serializer: S, axis_prefix: &str) -> Result<S::Ok, S::Error>
22+
where
23+
S: Serializer,
24+
{
25+
let mut map = HashMap::new();
26+
let axes = axes.as_ref().unwrap();
27+
28+
for (i, axis) in axes.iter().enumerate() {
29+
let axe = axis.as_ref().unwrap();
30+
let key = if i == 0 {
31+
axis_prefix.to_string()
32+
} else {
33+
format!("{}{}", axis_prefix, i + 1)
34+
};
35+
map.insert(key, axe);
36+
}
37+
38+
map.serialize(serializer)
39+
}
40+
41+
fn serialize_x_axes<S>(axes: &Option<Vec<Option<Box<Axis>>>>, serializer:S)-> Result<S::Ok,S::Error>
42+
where S:Serializer{
43+
serialize_axes(axes, serializer, "xaxis")
44+
}
45+
46+
fn serialize_y_axes<S>(axes: &Option<Vec<Option<Box<Axis>>>>, serializer:S)-> Result<S::Ok,S::Error>
47+
where S:Serializer{
48+
serialize_axes(axes, serializer, "yaxis")
49+
}
50+
51+
52+
fn serialize_z_axes<S>(axes: &Option<Vec<Option<Box<Axis>>>>, serializer:S)-> Result<S::Ok,S::Error>
53+
where S:Serializer{
54+
serialize_axes(axes, serializer, "zaxis")
55+
}
56+
2057
#[derive(Serialize, Debug, Clone)]
2158
#[serde(rename_all = "lowercase")]
2259
pub enum AxisType {

0 commit comments

Comments
 (0)