File tree Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Original file line number Diff line number Diff line change 1
1
use std:: fmt;
2
2
3
- use serde:: de:: { self , Unexpected , Visitor } ;
3
+ use serde:: {
4
+ de:: { self , Unexpected , Visitor } ,
5
+ ser:: Serialize ,
6
+ } ;
4
7
5
8
use crate :: NonEmptyString ;
6
9
10
+ impl Serialize for NonEmptyString {
11
+ fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
12
+ where
13
+ S : serde:: Serializer ,
14
+ {
15
+ serializer. serialize_str ( self . get ( ) )
16
+ }
17
+ }
18
+
7
19
struct NonEmptyStringVisitor ;
8
20
9
21
impl < ' de > de:: Deserialize < ' de > for NonEmptyString {
@@ -48,6 +60,17 @@ mod tests {
48
60
use assert_matches:: assert_matches;
49
61
use serde_json:: json;
50
62
63
+ #[ test]
64
+ fn serialize_works ( ) {
65
+ let value = NonEmptyString ( "abc" . to_owned ( ) ) ;
66
+ let result = serde_json:: to_string ( & value) ;
67
+
68
+ assert ! ( result. is_ok( ) ) ;
69
+
70
+ let json = serde_json:: to_string ( & json ! ( "abc" ) ) . unwrap ( ) ;
71
+ assert_eq ! ( result. unwrap( ) , json)
72
+ }
73
+
51
74
#[ test]
52
75
fn deserialize_works ( ) {
53
76
let e: Result < NonEmptyString , _ > = serde_json:: from_value ( json ! ( "abc" ) ) ;
You can’t perform that action at this time.
0 commit comments