Skip to content

Commit 2398fd7

Browse files
committed
Explicitly return DriversAlreadyTakenError
1 parent 7bc3c1f commit 2398fd7

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

src/drivers.rs

+10-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ use crate::gpio::GpioDriverFactory;
55
use crate::leds::LedsDriverFactory;
66
use crate::result::OtherError;
77
use crate::result::TockError;
8-
use crate::result::TockResult;
98
use crate::rng::RngDriver;
109
use crate::sensors::ninedof::NinedofDriver;
1110
use crate::sensors::AmbientLightSensor;
@@ -37,12 +36,12 @@ pub struct Drivers {
3736
}
3837

3938
/// Retrieve [Drivers] struct. Returns struct only once.
40-
pub fn retrieve_drivers() -> TockResult<Drivers> {
39+
pub fn retrieve_drivers() -> Result<Drivers, DriversAlreadyTakenError> {
4140
static mut DRIVER_TAKEN: bool = false;
4241

4342
unsafe {
4443
if DRIVER_TAKEN {
45-
Err(TockError::Other(OtherError::DriverAlreadyTaken))
44+
Err(DriversAlreadyTakenError)
4645
} else {
4746
DRIVER_TAKEN = true;
4847
Ok(retrieve_drivers_unsafe())
@@ -79,3 +78,11 @@ const DRIVERS: Drivers = Drivers {
7978
humidity_sensor: HumiditySensor,
8079
ninedof: NinedofDriver,
8180
};
81+
82+
pub struct DriversAlreadyTakenError;
83+
84+
impl From<DriversAlreadyTakenError> for TockError {
85+
fn from(_: DriversAlreadyTakenError) -> Self {
86+
TockError::Other(OtherError::DriversAlreadyTaken)
87+
}
88+
}

src/result.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ pub enum OtherError {
5050
GpioDriverInvalidState,
5151
TimerDriverDurationOutOfRange,
5252
TimerDriverErroneousClockFrequency,
53-
DriverAlreadyTaken,
54-
OutOfRangeError,
53+
DriversAlreadyTaken,
54+
OutOfRange,
5555
}
5656

5757
impl From<OtherError> for TockError {
@@ -63,7 +63,7 @@ impl From<OtherError> for TockError {
6363
pub struct OutOfRangeError;
6464

6565
impl From<OutOfRangeError> for TockError {
66-
fn from(_other: OutOfRangeError) -> Self {
67-
TockError::Other(OtherError::OutOfRangeError)
66+
fn from(_: OutOfRangeError) -> Self {
67+
TockError::Other(OtherError::OutOfRange)
6868
}
6969
}

0 commit comments

Comments
 (0)