1- use serdev:: { Serialize , Deserialize } ;
1+ use serdev:: { Deserialize , Serialize } ;
22
33#[ derive( Debug , PartialEq , Serialize , Deserialize ) ]
44struct User {
55 name : String ,
6- age : usize ,
6+ age : usize ,
77}
88
99#[ derive( Debug , PartialEq , Deserialize ) ]
1010#[ serde( validate = "Self::validate" ) ]
1111struct VUser {
1212 name : String ,
13- age : usize ,
13+ age : usize ,
1414}
1515impl VUser {
1616 fn validate ( & self ) -> Result < ( ) , impl std:: fmt:: Display > {
1717 if self . name . is_empty ( ) {
18- return Err ( "`name` must not be empty" )
18+ return Err ( "`name` must not be empty" ) ;
1919 }
2020 Ok ( ( ) )
2121 }
@@ -25,28 +25,28 @@ impl VUser {
2525#[ serde( validate( by = "Self::validate" , error = "&'static str" ) ) ]
2626struct EUser {
2727 name : String ,
28- age : usize ,
28+ age : usize ,
2929}
3030impl EUser {
3131 fn validate ( & self ) -> Result < ( ) , & ' static str > {
3232 if self . name . is_empty ( ) {
33- return Err ( "`name` must not be empty" )
33+ return Err ( "`name` must not be empty" ) ;
3434 }
3535 Ok ( ( ) )
3636 }
3737}
3838
3939#[ derive( Debug , PartialEq , Deserialize ) ]
4040#[ serde( validate = "Self::validate" ) ]
41- struct GUser < ' n , Name : From < String > + ToString , Age : From < u8 > > {
42- name : Name ,
43- age : Age ,
44- nickname : Option < & ' n str >
41+ struct GUser < ' n , Name : From < String > + ToString , Age : From < u8 > > {
42+ name : Name ,
43+ age : Age ,
44+ nickname : Option < & ' n str > ,
4545}
46- impl < ' n , Name : From < String > + ToString , Age : From < u8 > > GUser < ' n , Name , Age > {
46+ impl < ' n , Name : From < String > + ToString , Age : From < u8 > > GUser < ' n , Name , Age > {
4747 fn validate ( & self ) -> Result < ( ) , impl std:: fmt:: Display > {
4848 if self . name . to_string ( ) . is_empty ( ) {
49- return Err ( "`name` must not be empty" )
49+ return Err ( "`name` must not be empty" ) ;
5050 }
5151 Ok ( ( ) )
5252 }
@@ -56,76 +56,68 @@ fn main() {
5656 assert_eq ! (
5757 serde_json:: to_string( & User {
5858 name: String :: from( "serdev" ) ,
59- age: 0
60- } ) . unwrap( ) ,
59+ age: 0
60+ } )
61+ . unwrap( ) ,
6162 r#"{"name":"serdev","age":0}"#
6263 ) ;
6364 assert_eq ! (
64- serde_json:: from_str:: <User >(
65- r#"{"age":4,"name":"ohkami"}"#
66- ) . unwrap( ) ,
65+ serde_json:: from_str:: <User >( r#"{"age":4,"name":"ohkami"}"# ) . unwrap( ) ,
6766 User {
6867 name: String :: from( "ohkami" ) ,
69- age: 4
68+ age: 4
7069 }
7170 ) ;
7271
7372 assert_eq ! (
74- serde_json:: from_str:: <VUser >(
75- r#"{"age":4,"name":"ohkami"}"#
76- ) . unwrap( ) ,
73+ serde_json:: from_str:: <VUser >( r#"{"age":4,"name":"ohkami"}"# ) . unwrap( ) ,
7774 VUser {
7875 name: String :: from( "ohkami" ) ,
79- age: 4
76+ age: 4
8077 }
8178 ) ;
8279 assert_eq ! (
83- serde_json:: from_str:: <VUser >(
84- r#"{"age":4,"name":""}"#
85- ) . unwrap_err ( ) . to_string( ) ,
80+ serde_json:: from_str:: <VUser >( r#"{"age":4,"name":""}"# )
81+ . unwrap_err ( )
82+ . to_string( ) ,
8683 "`name` must not be empty"
8784 ) ;
8885
8986 assert_eq ! (
90- serde_json:: from_str:: <EUser >(
91- r#"{"age":4,"name":"ohkami"}"#
92- ) . unwrap( ) ,
87+ serde_json:: from_str:: <EUser >( r#"{"age":4,"name":"ohkami"}"# ) . unwrap( ) ,
9388 EUser {
9489 name: String :: from( "ohkami" ) ,
95- age: 4
90+ age: 4
9691 }
9792 ) ;
9893 assert_eq ! (
99- serde_json:: from_str:: <EUser >(
100- r#"{"age":4,"name":""}"#
101- ) . unwrap_err ( ) . to_string( ) ,
94+ serde_json:: from_str:: <EUser >( r#"{"age":4,"name":""}"# )
95+ . unwrap_err ( )
96+ . to_string( ) ,
10297 "`name` must not be empty"
10398 ) ;
10499
105100 assert_eq ! (
106- serde_json:: from_str:: <GUser <String , u8 >>(
107- r#"{"age":4,"name":"ohkami"}"#
108- ) . unwrap( ) ,
101+ serde_json:: from_str:: <GUser <String , u8 >>( r#"{"age":4,"name":"ohkami"}"# ) . unwrap( ) ,
109102 GUser {
110- name: String :: from( "ohkami" ) ,
111- age: 4 ,
103+ name: String :: from( "ohkami" ) ,
104+ age: 4 ,
112105 nickname: None
113106 }
114107 ) ;
115108 assert_eq ! (
116- serde_json:: from_str:: <GUser <String , u8 >>(
117- r#"{"age":4,"nickname":"wolf","name":"ohkami"}"#
118- ) . unwrap( ) ,
109+ serde_json:: from_str:: <GUser <String , u8 >>( r#"{"age":4,"nickname":"wolf","name":"ohkami"}"# )
110+ . unwrap( ) ,
119111 GUser {
120- name: String :: from( "ohkami" ) ,
121- age: 4 ,
112+ name: String :: from( "ohkami" ) ,
113+ age: 4 ,
122114 nickname: Some ( "wolf" )
123115 }
124116 ) ;
125117 assert_eq ! (
126- serde_json:: from_str:: <GUser <String , u8 >>(
127- r#"{"age":4,"nickname":"wolf","name":""}"#
128- ) . unwrap_err ( ) . to_string( ) ,
118+ serde_json:: from_str:: <GUser <String , u8 >>( r#"{"age":4,"nickname":"wolf","name":""}"# )
119+ . unwrap_err ( )
120+ . to_string( ) ,
129121 "`name` must not be empty"
130122 ) ;
131123}
0 commit comments