1#![doc = include_str!("../README.md")]
2#![cfg_attr(target_os = "none", no_std)]
12#![cfg_attr(target_os = "none", no_main)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14#![allow(async_fn_in_trait, reason = "single-threaded embedded")]
15
16#[cfg(all(target_os = "none", not(any(feature = "pico1", feature = "pico2"))))]
18compile_error!("Must enable exactly one board feature: 'pico1' or 'pico2'");
19
20#[cfg(all(target_os = "none", feature = "pico1", feature = "pico2"))]
21compile_error!("Cannot enable both 'pico1' and 'pico2' features simultaneously");
22
23#[cfg(all(target_os = "none", not(any(feature = "arm", feature = "riscv"))))]
25compile_error!("Must enable exactly one architecture feature: 'arm' or 'riscv'");
26
27#[cfg(all(target_os = "none", feature = "arm", feature = "riscv"))]
28compile_error!("Cannot enable both 'arm' and 'riscv' features simultaneously");
29
30#[cfg(all(target_os = "none", feature = "pico1", feature = "riscv"))]
32compile_error!("Pico 1 (RP2040) only supports ARM architecture, not RISC-V");
33
34#[cfg(target_os = "none")]
35pub(crate) mod bit_matrix_led4;
36#[cfg(target_os = "none")]
38#[doc(hidden)]
39pub mod pio_irqs;
40#[cfg(feature = "host")]
41pub mod to_png;
43#[cfg(target_os = "none")]
45pub mod button;
46#[cfg(target_os = "none")]
47pub mod char_lcd;
48#[cfg(all(feature = "wifi", target_os = "none"))]
49pub(crate) mod clock;
50#[cfg(all(feature = "wifi", target_os = "none"))]
51pub mod clock_sync;
52mod error;
53#[cfg(target_os = "none")]
54pub mod flash_array;
55#[cfg(target_os = "none")]
56pub mod ir;
57#[cfg(target_os = "none")]
58pub mod led;
59pub mod led2d;
60#[cfg(target_os = "none")]
61pub mod led4;
62pub mod led_strip;
63#[cfg(target_os = "none")]
64pub mod rfid;
65#[cfg(target_os = "none")]
66pub mod servo;
67#[cfg(target_os = "none")]
68pub mod servo_player;
69#[cfg(target_os = "none")]
70pub(crate) mod time_sync;
71#[cfg(all(feature = "wifi", target_os = "none"))]
72pub mod wifi_auto;
73
74pub use crate::error::{Error, Result};