@@ -17,6 +17,43 @@ use crate::{
17
17
private:: { NumOrString , NumOrStringCollection } ,
18
18
} ;
19
19
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
+
20
57
#[ derive( Serialize , Debug , Clone ) ]
21
58
#[ serde( rename_all = "lowercase" ) ]
22
59
pub enum AxisType {
0 commit comments