#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub enum SpeculationStoreBypassStatus
{
Unknown,
NotVulnerable,
ThreadForceMitigated,
ThreadMitigated,
ThreadVulnerable,
GloballyMitigated,
Vulnerable,
}
impl FromBytes for SpeculationStoreBypassStatus
{
type Error = StatusStatisticParseError;
#[inline(always)]
fn from_bytes(value: &[u8]) -> Result<SpeculationStoreBypassStatus, Self::Error>
{
use self::SpeculationStoreBypassStatus::*;
let value = match value
{
b"unknown" => SpeculationStoreBypassStatus::Unknown,
b"not vulnerable" => NotVulnerable,
b"thread force mitigated" => ThreadForceMitigated,
b"thread mitigated" => ThreadMitigated,
b"thread vulnerable" => ThreadVulnerable,
b"globally mitigated" => GloballyMitigated,
b"vulnerable" => Vulnerable,
_ => return Err(StatusStatisticParseError::OutOfRange),
};
Ok(value)
}
}