1*2a7d773dSTingHuang use super::IdTable; 2*2a7d773dSTingHuang use core::{any::Any, fmt::Debug}; 3*2a7d773dSTingHuang 4*2a7d773dSTingHuang /// @brief: Driver error 5*2a7d773dSTingHuang #[allow(dead_code)] 6*2a7d773dSTingHuang #[derive(Debug)] 7*2a7d773dSTingHuang #[derive(PartialEq, Eq)] 8*2a7d773dSTingHuang #[derive(Clone, Copy)] 9*2a7d773dSTingHuang pub enum DriverError { 10*2a7d773dSTingHuang ProbeError, 11*2a7d773dSTingHuang } 12*2a7d773dSTingHuang 13*2a7d773dSTingHuang /// @brief: 所有设备驱动都应该实现该trait 14*2a7d773dSTingHuang pub trait Driver: Any + Send + Sync + Debug { 15*2a7d773dSTingHuang /// @brief: 获取设备驱动标识符 16*2a7d773dSTingHuang /// @parameter: None 17*2a7d773dSTingHuang /// @return: 该设备驱动唯一标识符 18*2a7d773dSTingHuang fn get_id_table(&self) -> IdTable; 19*2a7d773dSTingHuang } 20