#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub enum LinkSpeed
{
_32,
_16,
_8,
_5,
_2dot5,
Unknown,
}
impl FromBytes for LinkSpeed
{
type Error = ParseLinkSpeedError;
#[inline(always)]
fn from_bytes(bytes: &[u8]) -> Result<Self, Self::Error>
{
use self::LinkSpeed::*;
match bytes
{
b"32 GT/s" => Ok(_32),
b"16 GT/s" => Ok(_16),
b"8 GT/s" => Ok(_8),
b"5 GT/s" => Ok(_5),
b"2.5 GT/s" => Ok(_2dot5),
b"Unknown speed" => Ok(Unknown),
_ => Err(ParseLinkSpeedError::Unrecognised(bytes.to_vec()))
}
}
}