blob: 1b11a8e24def28c901595205e5326cd5dd501a53 [file] [log] [blame] [edit]
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
use std::process::Output;
pub struct HwsecStatus {
exit_code: i32,
}
impl HwsecStatus {
pub fn from_raw(exit_status: i32) -> Self {
Self {
exit_code: exit_status,
}
}
pub fn success(&self) -> bool {
self.exit_code == 0
}
pub fn code(&self) -> Option<i32> {
Some(self.exit_code)
}
}
pub struct HwsecOutput {
pub status: HwsecStatus,
pub stdout: Vec<u8>,
pub stderr: Vec<u8>,
}
impl HwsecOutput {
pub fn from_output(output: Output) -> Self {
if output.status.code().is_none() {
Self {
status: HwsecStatus { exit_code: -1 },
stdout: Vec::<u8>::new(),
stderr: Vec::<u8>::new(),
}
} else {
Self {
status: HwsecStatus {
exit_code: output.status.code().unwrap(),
},
stdout: output.stdout,
stderr: output.stderr,
}
}
}
}