1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use crate::{configuration, status};
/// Crate errors.
#[derive(Debug, PartialEq, Clone, Copy)]
pub enum Error<E> {
/// `I2C` communication error.
Communication(E),
/// Magnet status parsing/conversion error.
Status(status::Error),
/// Configuration parsing/conversion error.
Configuration(configuration::error::Error),
/// Persistence error: configuration can only be persisted 3 times.
MaximumPositionPersistsReached,
/// Magnet is required for persistence action.
MagnetRequired,
/// No more persistent writes available for maximum angle and configuration registers.
MangConfigPersistenceExhausted,
}
impl<E> From<E> for Error<E> {
fn from(e: E) -> Self {
Self::Communication(e)
}
}