@@ -112,23 +112,6 @@ pub enum TargetKind {
112
112
CustomBuild ,
113
113
}
114
114
115
- impl TargetKind {
116
- /// Returns a vector of crate types as specified in a manifest
117
- pub fn crate_types ( & self ) -> Vec < & str > {
118
- use self :: TargetKind :: * ;
119
- match * self {
120
- Lib ( ref kinds) | ExampleLib ( ref kinds) => {
121
- kinds. iter ( ) . map ( LibKind :: crate_type) . collect ( )
122
- }
123
- Bin => vec ! [ "bin" ] ,
124
- ExampleBin => vec ! [ "example" ] ,
125
- Test => vec ! [ "test" ] ,
126
- CustomBuild => vec ! [ "custom-build" ] ,
127
- Bench => vec ! [ "bench" ]
128
- }
129
- }
130
- }
131
-
132
115
impl ser:: Serialize for TargetKind {
133
116
fn serialize < S > ( & self , s : S ) -> Result < S :: Ok , S :: Error >
134
117
where S : ser:: Serializer ,
@@ -207,7 +190,11 @@ pub struct Target {
207
190
208
191
#[ derive( Serialize ) ]
209
192
struct SerializedTarget < ' a > {
193
+ /// Is this a `--bin bin`, `--lib`, `--example ex`?
194
+ /// Serialized as a list of strings for historical reasons.
210
195
kind : & ' a TargetKind ,
196
+ /// Corresponds to `--crate-type` compiler attribute.
197
+ /// See https://doc.rust-lang.org/reference.html#linkage
211
198
crate_types : Vec < & ' a str > ,
212
199
name : & ' a str ,
213
200
src_path : & ' a PathBuf ,
@@ -217,7 +204,7 @@ impl ser::Serialize for Target {
217
204
fn serialize < S : ser:: Serializer > ( & self , s : S ) -> Result < S :: Ok , S :: Error > {
218
205
SerializedTarget {
219
206
kind : & self . kind ,
220
- crate_types : self . kind . crate_types ( ) ,
207
+ crate_types : self . rustc_crate_types ( ) ,
221
208
name : & self . name ,
222
209
src_path : & self . src_path ,
223
210
} . serialize ( s)
0 commit comments