tele0592/
lib.rs

1#![doc = include_str!("../README.md")]
2//!
3//! # Usage
4//! Most users will want to use the [`controller`] module in which commands
5//! needed to interact with the motors and the encoders can be found, or the
6//! reexported [`Controller`] trait.
7
8#![no_std]
9
10#[cfg(feature = "bootloader")]
11pub mod bootloader;
12#[cfg(feature = "controller")]
13pub mod controller;
14pub mod device;
15
16pub use device::Device;
17
18#[cfg(feature = "bootloader")]
19pub use bootloader::Bootloader;
20
21#[cfg(feature = "controller")]
22pub use controller::Controller;
23
24#[cfg(feature = "low-level")]
25/// Low-level constants used by the I²C protocol
26///
27/// *Note: this requires that the `low-level` feature is selected.*
28pub mod low_level {
29    #[cfg(feature = "bootloader")]
30    pub use super::bootloader::low_level::*;
31    #[cfg(feature = "controller")]
32    pub use super::controller::low_level::*;
33    pub use super::device::low_level::*;
34}