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 11use std:: fmt;
22
3- use serde:: de:: { self , Unexpected , Visitor } ;
3+ use serde:: {
4+ de:: { self , Unexpected , Visitor } ,
5+ ser:: Serialize ,
6+ } ;
47
58use crate :: NonEmptyString ;
69
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+
719struct NonEmptyStringVisitor ;
820
921impl < ' de > de:: Deserialize < ' de > for NonEmptyString {
@@ -48,6 +60,17 @@ mod tests {
4860 use assert_matches:: assert_matches;
4961 use serde_json:: json;
5062
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+
5174 #[ test]
5275 fn deserialize_works ( ) {
5376 let e: Result < NonEmptyString , _ > = serde_json:: from_value ( json ! ( "abc" ) ) ;
You can’t perform that action at this time.
0 commit comments