@@ -223,31 +223,17 @@ pub fn command<S: AsRef<OsStr>>(program: S) -> BootstrapCommand {
223
223
}
224
224
225
225
/// Represents the output of an executed process.
226
+ #[ allow( unused) ]
226
227
pub struct CommandOutput {
227
228
status : CommandStatus ,
228
- stdout : Option < Vec < u8 > > ,
229
- stderr : Option < Vec < u8 > > ,
229
+ stdout : Vec < u8 > ,
230
+ stderr : Vec < u8 > ,
230
231
}
231
232
232
233
impl CommandOutput {
233
234
#[ must_use]
234
235
pub fn did_not_start ( ) -> Self {
235
- Self { status : CommandStatus :: DidNotStart , stdout : None , stderr : None }
236
- }
237
-
238
- #[ must_use]
239
- pub fn from_output ( output : Output , stdout : OutputMode , stderr : OutputMode ) -> Self {
240
- Self {
241
- status : CommandStatus :: Finished ( output. status ) ,
242
- stdout : match stdout {
243
- OutputMode :: Print => None ,
244
- OutputMode :: Capture => Some ( output. stdout ) ,
245
- } ,
246
- stderr : match stderr {
247
- OutputMode :: Print => None ,
248
- OutputMode :: Capture => Some ( output. stderr ) ,
249
- } ,
250
- }
236
+ Self { status : CommandStatus :: DidNotStart , stdout : vec ! [ ] , stderr : vec ! [ ] }
251
237
}
252
238
253
239
#[ must_use]
@@ -273,10 +259,7 @@ impl CommandOutput {
273
259
274
260
#[ must_use]
275
261
pub fn stdout ( & self ) -> String {
276
- String :: from_utf8 (
277
- self . stdout . clone ( ) . expect ( "Accessing stdout of a command that did not capture stdout" ) ,
278
- )
279
- . expect ( "Cannot parse process stdout as UTF-8" )
262
+ String :: from_utf8 ( self . stdout . clone ( ) ) . expect ( "Cannot parse process stdout as UTF-8" )
280
263
}
281
264
282
265
#[ must_use]
@@ -286,19 +269,26 @@ impl CommandOutput {
286
269
287
270
#[ must_use]
288
271
pub fn stderr ( & self ) -> String {
289
- String :: from_utf8 (
290
- self . stderr . clone ( ) . expect ( "Accessing stderr of a command that did not capture stderr" ) ,
291
- )
292
- . expect ( "Cannot parse process stderr as UTF-8" )
272
+ String :: from_utf8 ( self . stderr . clone ( ) ) . expect ( "Cannot parse process stderr as UTF-8" )
293
273
}
294
274
}
295
275
296
276
impl Default for CommandOutput {
297
277
fn default ( ) -> Self {
298
278
Self {
299
279
status : CommandStatus :: Finished ( ExitStatus :: default ( ) ) ,
300
- stdout : Some ( vec ! [ ] ) ,
301
- stderr : Some ( vec ! [ ] ) ,
280
+ stdout : vec ! [ ] ,
281
+ stderr : vec ! [ ] ,
282
+ }
283
+ }
284
+ }
285
+
286
+ impl From < Output > for CommandOutput {
287
+ fn from ( output : Output ) -> Self {
288
+ Self {
289
+ status : CommandStatus :: Finished ( output. status ) ,
290
+ stdout : output. stdout ,
291
+ stderr : output. stderr ,
302
292
}
303
293
}
304
294
}
0 commit comments