@@ -14,19 +14,19 @@ use models::DependencyKind;
14
14
use models:: Keyword as CrateKeyword ;
15
15
16
16
#[ derive( Deserialize , Serialize , Debug ) ]
17
- pub struct NewCrate {
18
- pub name : CrateName ,
19
- pub vers : CrateVersion ,
20
- pub deps : Vec < CrateDependency > ,
21
- pub features : HashMap < FeatureName , Vec < Feature > > ,
17
+ pub struct EncodableCrateUpload {
18
+ pub name : EncodableCrateName ,
19
+ pub vers : EncodableCrateVersion ,
20
+ pub deps : Vec < EncodableCrateDependency > ,
21
+ pub features : HashMap < EncodableFeatureName , Vec < EncodableFeature > > ,
22
22
pub authors : Vec < String > ,
23
23
pub description : Option < String > ,
24
24
pub homepage : Option < String > ,
25
25
pub documentation : Option < String > ,
26
26
pub readme : Option < String > ,
27
27
pub readme_file : Option < String > ,
28
- pub keywords : Option < KeywordList > ,
29
- pub categories : Option < CategoryList > ,
28
+ pub keywords : Option < EncodableKeywordList > ,
29
+ pub categories : Option < EncodableCategoryList > ,
30
30
pub license : Option < String > ,
31
31
pub license_file : Option < String > ,
32
32
pub repository : Option < String > ,
@@ -36,38 +36,38 @@ pub struct NewCrate {
36
36
}
37
37
38
38
#[ derive( PartialEq , Eq , Hash , Serialize , Debug , Deref ) ]
39
- pub struct CrateName ( pub String ) ;
39
+ pub struct EncodableCrateName ( pub String ) ;
40
40
#[ derive( Debug , Deref ) ]
41
- pub struct CrateVersion ( pub semver:: Version ) ;
41
+ pub struct EncodableCrateVersion ( pub semver:: Version ) ;
42
42
#[ derive( Debug , Deref ) ]
43
- pub struct CrateVersionReq ( pub semver:: VersionReq ) ;
43
+ pub struct EncodableCrateVersionReq ( pub semver:: VersionReq ) ;
44
44
#[ derive( Serialize , Debug , Deref ) ]
45
- pub struct KeywordList ( pub Vec < Keyword > ) ;
45
+ pub struct EncodableKeywordList ( pub Vec < EncodableKeyword > ) ;
46
46
#[ derive( Serialize , Debug , Deref ) ]
47
- pub struct Keyword ( pub String ) ;
47
+ pub struct EncodableKeyword ( pub String ) ;
48
48
#[ derive( Serialize , Debug , Deref ) ]
49
- pub struct CategoryList ( pub Vec < Category > ) ;
49
+ pub struct EncodableCategoryList ( pub Vec < EncodableCategory > ) ;
50
50
#[ derive( Serialize , Deserialize , Debug , Deref ) ]
51
- pub struct Category ( pub String ) ;
51
+ pub struct EncodableCategory ( pub String ) ;
52
52
#[ derive( Serialize , Debug , Deref ) ]
53
- pub struct Feature ( pub String ) ;
53
+ pub struct EncodableFeature ( pub String ) ;
54
54
#[ derive( PartialEq , Eq , Hash , Serialize , Debug , Deref ) ]
55
- pub struct FeatureName ( pub String ) ;
55
+ pub struct EncodableFeatureName ( pub String ) ;
56
56
57
57
#[ derive( Serialize , Deserialize , Debug ) ]
58
- pub struct CrateDependency {
58
+ pub struct EncodableCrateDependency {
59
59
pub optional : bool ,
60
60
pub default_features : bool ,
61
- pub name : CrateName ,
62
- pub features : Vec < Feature > ,
63
- pub version_req : CrateVersionReq ,
61
+ pub name : EncodableCrateName ,
62
+ pub features : Vec < EncodableFeature > ,
63
+ pub version_req : EncodableCrateVersionReq ,
64
64
pub target : Option < String > ,
65
65
pub kind : Option < DependencyKind > ,
66
- pub explicit_name_in_toml : Option < CrateName > ,
66
+ pub explicit_name_in_toml : Option < EncodableCrateName > ,
67
67
}
68
68
69
- impl < ' de > Deserialize < ' de > for CrateName {
70
- fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < CrateName , D :: Error > {
69
+ impl < ' de > Deserialize < ' de > for EncodableCrateName {
70
+ fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < EncodableCrateName , D :: Error > {
71
71
let s = String :: deserialize ( d) ?;
72
72
if !Crate :: valid_name ( & s) {
73
73
let value = de:: Unexpected :: Str ( & s) ;
@@ -78,12 +78,12 @@ impl<'de> Deserialize<'de> for CrateName {
78
78
) ;
79
79
Err ( de:: Error :: invalid_value ( value, & expected. as_ref ( ) ) )
80
80
} else {
81
- Ok ( CrateName ( s) )
81
+ Ok ( EncodableCrateName ( s) )
82
82
}
83
83
}
84
84
}
85
85
86
- impl < T : ?Sized > PartialEq < T > for CrateName
86
+ impl < T : ?Sized > PartialEq < T > for EncodableCrateName
87
87
where
88
88
String : PartialEq < T > ,
89
89
{
@@ -92,20 +92,20 @@ where
92
92
}
93
93
}
94
94
95
- impl < ' de > Deserialize < ' de > for Keyword {
96
- fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < Keyword , D :: Error > {
95
+ impl < ' de > Deserialize < ' de > for EncodableKeyword {
96
+ fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < EncodableKeyword , D :: Error > {
97
97
let s = String :: deserialize ( d) ?;
98
98
if !CrateKeyword :: valid_name ( & s) {
99
99
let value = de:: Unexpected :: Str ( & s) ;
100
100
let expected = "a valid keyword specifier" ;
101
101
Err ( de:: Error :: invalid_value ( value, & expected) )
102
102
} else {
103
- Ok ( Keyword ( s) )
103
+ Ok ( EncodableKeyword ( s) )
104
104
}
105
105
}
106
106
}
107
107
108
- impl < ' de > Deserialize < ' de > for FeatureName {
108
+ impl < ' de > Deserialize < ' de > for EncodableFeatureName {
109
109
fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < Self , D :: Error > {
110
110
let s = String :: deserialize ( d) ?;
111
111
if !Crate :: valid_feature_name ( & s) {
@@ -114,29 +114,29 @@ impl<'de> Deserialize<'de> for FeatureName {
114
114
numbers, hyphens, or underscores";
115
115
Err ( de:: Error :: invalid_value ( value, & expected) )
116
116
} else {
117
- Ok ( FeatureName ( s) )
117
+ Ok ( EncodableFeatureName ( s) )
118
118
}
119
119
}
120
120
}
121
121
122
- impl < ' de > Deserialize < ' de > for Feature {
123
- fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < Feature , D :: Error > {
122
+ impl < ' de > Deserialize < ' de > for EncodableFeature {
123
+ fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < EncodableFeature , D :: Error > {
124
124
let s = String :: deserialize ( d) ?;
125
125
if !Crate :: valid_feature ( & s) {
126
126
let value = de:: Unexpected :: Str ( & s) ;
127
127
let expected = "a valid feature name" ;
128
128
Err ( de:: Error :: invalid_value ( value, & expected) )
129
129
} else {
130
- Ok ( Feature ( s) )
130
+ Ok ( EncodableFeature ( s) )
131
131
}
132
132
}
133
133
}
134
134
135
- impl < ' de > Deserialize < ' de > for CrateVersion {
136
- fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < CrateVersion , D :: Error > {
135
+ impl < ' de > Deserialize < ' de > for EncodableCrateVersion {
136
+ fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < EncodableCrateVersion , D :: Error > {
137
137
let s = String :: deserialize ( d) ?;
138
138
match semver:: Version :: parse ( & s) {
139
- Ok ( v) => Ok ( CrateVersion ( v) ) ,
139
+ Ok ( v) => Ok ( EncodableCrateVersion ( v) ) ,
140
140
Err ( ..) => {
141
141
let value = de:: Unexpected :: Str ( & s) ;
142
142
let expected = "a valid semver" ;
@@ -146,11 +146,11 @@ impl<'de> Deserialize<'de> for CrateVersion {
146
146
}
147
147
}
148
148
149
- impl < ' de > Deserialize < ' de > for CrateVersionReq {
150
- fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < CrateVersionReq , D :: Error > {
149
+ impl < ' de > Deserialize < ' de > for EncodableCrateVersionReq {
150
+ fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < EncodableCrateVersionReq , D :: Error > {
151
151
let s = String :: deserialize ( d) ?;
152
152
match semver:: VersionReq :: parse ( & s) {
153
- Ok ( v) => Ok ( CrateVersionReq ( v) ) ,
153
+ Ok ( v) => Ok ( EncodableCrateVersionReq ( v) ) ,
154
154
Err ( ..) => {
155
155
let value = de:: Unexpected :: Str ( & s) ;
156
156
let expected = "a valid version req" ;
@@ -160,7 +160,7 @@ impl<'de> Deserialize<'de> for CrateVersionReq {
160
160
}
161
161
}
162
162
163
- impl < T : ?Sized > PartialEq < T > for CrateVersionReq
163
+ impl < T : ?Sized > PartialEq < T > for EncodableCrateVersionReq
164
164
where
165
165
semver:: VersionReq : PartialEq < T > ,
166
166
{
@@ -169,9 +169,9 @@ where
169
169
}
170
170
}
171
171
172
- impl < ' de > Deserialize < ' de > for KeywordList {
173
- fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < KeywordList , D :: Error > {
174
- let inner = <Vec < Keyword > as Deserialize < ' de > >:: deserialize ( d) ?;
172
+ impl < ' de > Deserialize < ' de > for EncodableKeywordList {
173
+ fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < EncodableKeywordList , D :: Error > {
174
+ let inner = <Vec < EncodableKeyword > as Deserialize < ' de > >:: deserialize ( d) ?;
175
175
if inner. len ( ) > 5 {
176
176
let expected = "at most 5 keywords per crate" ;
177
177
return Err ( de:: Error :: invalid_length ( inner. len ( ) , & expected) ) ;
@@ -182,23 +182,23 @@ impl<'de> Deserialize<'de> for KeywordList {
182
182
return Err ( de:: Error :: invalid_length ( val. len ( ) , & expected) ) ;
183
183
}
184
184
}
185
- Ok ( KeywordList ( inner) )
185
+ Ok ( EncodableKeywordList ( inner) )
186
186
}
187
187
}
188
188
189
- impl < ' de > Deserialize < ' de > for CategoryList {
190
- fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < CategoryList , D :: Error > {
191
- let inner = <Vec < Category > as Deserialize < ' de > >:: deserialize ( d) ?;
189
+ impl < ' de > Deserialize < ' de > for EncodableCategoryList {
190
+ fn deserialize < D : Deserializer < ' de > > ( d : D ) -> Result < EncodableCategoryList , D :: Error > {
191
+ let inner = <Vec < EncodableCategory > as Deserialize < ' de > >:: deserialize ( d) ?;
192
192
if inner. len ( ) > 5 {
193
193
let expected = "at most 5 categories per crate" ;
194
194
Err ( de:: Error :: invalid_length ( inner. len ( ) , & expected) )
195
195
} else {
196
- Ok ( CategoryList ( inner) )
196
+ Ok ( EncodableCategoryList ( inner) )
197
197
}
198
198
}
199
199
}
200
200
201
- impl Serialize for CrateVersion {
201
+ impl Serialize for EncodableCrateVersion {
202
202
fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
203
203
where
204
204
S : Serializer ,
@@ -207,7 +207,7 @@ impl Serialize for CrateVersion {
207
207
}
208
208
}
209
209
210
- impl Serialize for CrateVersionReq {
210
+ impl Serialize for EncodableCrateVersionReq {
211
211
fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
212
212
where
213
213
S : Serializer ,
@@ -221,7 +221,7 @@ use diesel::serialize::{self, Output, ToSql};
221
221
use diesel:: sql_types:: Text ;
222
222
use std:: io:: Write ;
223
223
224
- impl ToSql < Text , Pg > for Feature {
224
+ impl ToSql < Text , Pg > for EncodableFeature {
225
225
fn to_sql < W : Write > ( & self , out : & mut Output < ' _ , W , Pg > ) -> serialize:: Result {
226
226
ToSql :: < Text , Pg > :: to_sql ( & * * self , out)
227
227
}
@@ -231,10 +231,10 @@ impl ToSql<Text, Pg> for Feature {
231
231
fn feature_deserializes_for_valid_features ( ) {
232
232
use serde_json as json;
233
233
234
- assert ! ( json:: from_str:: <Feature >( "\" foo\" " ) . is_ok( ) ) ;
235
- assert ! ( json:: from_str:: <Feature >( "\" \" " ) . is_err( ) ) ;
236
- assert ! ( json:: from_str:: <Feature >( "\" /\" " ) . is_err( ) ) ;
237
- assert ! ( json:: from_str:: <Feature >( "\" %/%\" " ) . is_err( ) ) ;
238
- assert ! ( json:: from_str:: <Feature >( "\" a/a\" " ) . is_ok( ) ) ;
239
- assert ! ( json:: from_str:: <Feature >( "\" 32-column-tables\" " ) . is_ok( ) ) ;
234
+ assert ! ( json:: from_str:: <EncodableFeature >( "\" foo\" " ) . is_ok( ) ) ;
235
+ assert ! ( json:: from_str:: <EncodableFeature >( "\" \" " ) . is_err( ) ) ;
236
+ assert ! ( json:: from_str:: <EncodableFeature >( "\" /\" " ) . is_err( ) ) ;
237
+ assert ! ( json:: from_str:: <EncodableFeature >( "\" %/%\" " ) . is_err( ) ) ;
238
+ assert ! ( json:: from_str:: <EncodableFeature >( "\" a/a\" " ) . is_ok( ) ) ;
239
+ assert ! ( json:: from_str:: <EncodableFeature >( "\" 32-column-tables\" " ) . is_ok( ) ) ;
240
240
}
0 commit comments