Skip to main content

rdif_base/
lib.rs

1#![cfg_attr(not(test), no_std)]
2
3extern crate alloc;
4
5pub use core::any::Any;
6
7#[macro_use]
8mod _macros;
9pub use paste::paste;
10pub use rdif_def::{CpuId, KError, custom_type, irq};
11pub mod io;
12
13#[cfg(all(axtest, feature = "axtest"))]
14pub mod axtest;
15
16pub mod _rdif_prelude {
17    pub use super::{CpuId, DriverGeneric, KError, io, irq::*};
18}
19
20pub trait DriverGeneric: Send + Any {
21    fn name(&self) -> &str;
22
23    /// Subtype casting support, returns subtype as `&dyn Any`
24    fn raw_any(&self) -> Option<&dyn Any> {
25        None
26    }
27    /// Subtype casting support, returns subtype as `&mut dyn Any`
28    fn raw_any_mut(&mut self) -> Option<&mut dyn Any> {
29        None
30    }
31}