1
1
#[ cfg( feature = "rustc-serialization" ) ] use rustc_serialize:: { Encoder , Encodable , Decoder , Decodable } ;
2
2
#[ cfg( feature = "serde-serialization" ) ] use serde:: { Serialize , Serializer , Deserialize , Deserializer } ;
3
3
#[ cfg( feature = "serde-serialization" ) ] use serde:: de:: { Error , Visitor } ;
4
+ #[ cfg( feature = "serde-serialization" ) ] use std:: fmt;
4
5
5
6
/// A list specifying categories of routing strategy.
6
7
#[ derive( Clone , Debug , PartialEq , Eq ) ]
@@ -36,7 +37,7 @@ impl Decodable for RoutingStrategy {
36
37
37
38
#[ cfg( feature = "serde-serialization" ) ]
38
39
impl Serialize for RoutingStrategy {
39
- fn serialize < S : Serializer > ( & self , serializer : & mut S ) -> Result < ( ) , S :: Error > {
40
+ fn serialize < S : Serializer > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error > {
40
41
match * self {
41
42
RoutingStrategy :: Random => serializer. serialize_str ( "Random" ) ,
42
43
RoutingStrategy :: RoundRobin ( _) => serializer. serialize_str ( "RoundRobin" )
@@ -46,7 +47,7 @@ impl Serialize for RoutingStrategy {
46
47
47
48
#[ cfg( feature = "serde-serialization" ) ]
48
49
impl Deserialize for RoutingStrategy {
49
- fn deserialize < D : Deserializer > ( deserializer : & mut D ) -> Result < Self , D :: Error > {
50
+ fn deserialize < D : Deserializer > ( deserializer : D ) -> Result < Self , D :: Error > {
50
51
deserializer. deserialize_str ( RoutingStrategyVisitor )
51
52
}
52
53
}
@@ -57,7 +58,10 @@ struct RoutingStrategyVisitor;
57
58
#[ cfg( feature = "serde-serialization" ) ]
58
59
impl Visitor for RoutingStrategyVisitor {
59
60
type Value = RoutingStrategy ;
60
- fn visit_str < E : Error > ( & mut self , s : & str ) -> Result < RoutingStrategy , E > {
61
+ fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
62
+ formatter. write_str ( "Random or RoundRobin" )
63
+ }
64
+ fn visit_str < E : Error > ( self , s : & str ) -> Result < RoutingStrategy , E > {
61
65
match s {
62
66
"Random" => Ok ( RoutingStrategy :: Random ) ,
63
67
"RoundRobin" => Ok ( RoutingStrategy :: RoundRobin ( 0 ) ) ,
0 commit comments