Explicitly return DriversAlreadyTakenError
diff --git a/src/drivers.rs b/src/drivers.rs index 8d8e8ab..185f6ea 100644 --- a/src/drivers.rs +++ b/src/drivers.rs
@@ -5,7 +5,6 @@ use crate::leds::LedsDriverFactory; use crate::result::OtherError; use crate::result::TockError; -use crate::result::TockResult; use crate::rng::RngDriver; use crate::sensors::ninedof::NinedofDriver; use crate::sensors::AmbientLightSensor; @@ -37,12 +36,12 @@ } /// Retrieve [Drivers] struct. Returns struct only once. -pub fn retrieve_drivers() -> TockResult<Drivers> { +pub fn retrieve_drivers() -> Result<Drivers, DriversAlreadyTakenError> { static mut DRIVER_TAKEN: bool = false; unsafe { if DRIVER_TAKEN { - Err(TockError::Other(OtherError::DriverAlreadyTaken)) + Err(DriversAlreadyTakenError) } else { DRIVER_TAKEN = true; Ok(retrieve_drivers_unsafe()) @@ -79,3 +78,11 @@ humidity_sensor: HumiditySensor, ninedof: NinedofDriver, }; + +pub struct DriversAlreadyTakenError; + +impl From<DriversAlreadyTakenError> for TockError { + fn from(_: DriversAlreadyTakenError) -> Self { + TockError::Other(OtherError::DriversAlreadyTaken) + } +}
diff --git a/src/result.rs b/src/result.rs index 74b4786..84af6bf 100644 --- a/src/result.rs +++ b/src/result.rs
@@ -50,8 +50,8 @@ GpioDriverInvalidState, TimerDriverDurationOutOfRange, TimerDriverErroneousClockFrequency, - DriverAlreadyTaken, - OutOfRangeError, + DriversAlreadyTaken, + OutOfRange, } impl From<OtherError> for TockError { @@ -63,7 +63,7 @@ pub struct OutOfRangeError; impl From<OutOfRangeError> for TockError { - fn from(_other: OutOfRangeError) -> Self { - TockError::Other(OtherError::OutOfRangeError) + fn from(_: OutOfRangeError) -> Self { + TockError::Other(OtherError::OutOfRange) } }