#![allow(non_upper_case_globals)]
use crate::generated::binding::*;
use std::fmt;
use std::fmt::Formatter;
#[derive(Debug)]
pub enum Arch {
Warboy = FuriosaSmiArch_FURIOSA_SMI_ARCH_WARBOY as isize,
Rngd = FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD as isize,
RngdMax = FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD_MAX as isize,
RngdS = FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD_S as isize,
}
impl Arch {
pub(crate) fn from(raw: FuriosaSmiArch) -> Arch {
match raw {
FuriosaSmiArch_FURIOSA_SMI_ARCH_WARBOY => Arch::Warboy,
FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD => Arch::Rngd,
FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD_MAX => Arch::RngdMax,
FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD_S => Arch::RngdS,
_ => panic!("unknown arch"),
}
}
}
impl fmt::Display for Arch {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
let s = match self {
Arch::Warboy => "warboy",
Arch::Rngd => "rngd",
Arch::RngdS => "rngd_s",
Arch::RngdMax => "rngd_max",
};
write!(f, "{}", s)
}
}
pub enum LinkType {
Unknown =
FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_UNKNOWN as isize,
Interconnect =
FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_INTERCONNECT
as isize,
Cpu = FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_CPU as isize,
Bridge =
FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_BRIDGE as isize,
Noc = FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_NOC as isize,
}
impl LinkType {
pub(crate) fn from(raw: FuriosaSmiDeviceToDeviceLinkType) -> LinkType {
match raw {
FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_UNKNOWN => {
LinkType::Unknown
}
FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_INTERCONNECT => {
LinkType::Interconnect
}
FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_CPU => {
LinkType::Cpu
}
FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_BRIDGE => {
LinkType::Bridge
}
FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_NOC => {
LinkType::Noc
}
_ => panic!("unknown linktype"),
}
}
}
impl fmt::Display for LinkType {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
let s = match self {
LinkType::Unknown => "Unknown",
LinkType::Interconnect => "Interconnect",
LinkType::Cpu => "Cpu",
LinkType::Bridge => "Bridge",
LinkType::Noc => "Noc",
};
write!(f, "{}", s)
}
}