use crate::timer::TickType;
#[cfg(any(target_arch = "riscv32", target_arch = "xtensa"))]
#[cfg(feature = "network")]
use esp_wifi::esp_now::EspNow;
pub trait PortTrait {
fn setup_hardware_timer();
fn get_tick_counter() -> TickType;
fn init_heap();
#[cfg(feature = "network")]
fn init_network();
#[cfg(any(target_arch = "riscv32", target_arch = "xtensa"))]
#[cfg(feature = "network")]
fn get_esp_now() -> EspNow<'static>;
}
#[cfg(any(target_arch = "riscv32", target_arch = "xtensa"))]
pub mod xtensa_esp32;
#[cfg(any(target_arch = "riscv32", target_arch = "xtensa"))]
pub type Port = xtensa_esp32::XtensaEsp32;
#[cfg(all(
not(any(target_arch = "riscv32", target_arch = "xtensa")),
not(target_arch = "mips64")
))]
pub mod mok;
#[cfg(all(
not(any(target_arch = "riscv32", target_arch = "xtensa")),
not(target_arch = "mips64")
))]
pub type Port = mok::Mok;
#[cfg(target_arch = "mips64")]
pub mod mips64;
#[cfg(target_arch = "mips64")]
pub type Port = mips64::Mips64;