@@ -18,6 +18,8 @@ use rtcc::{DateTimeAccess, Datelike, Hours, NaiveDate, NaiveDateTime, NaiveTime,
18
18
pub enum Error {
19
19
/// Invalid input error
20
20
InvalidInputData ,
21
+ /// Invalid register data, failed to convert to rtcc Type
22
+ InvalidRtcData ,
21
23
}
22
24
23
25
/// Real Time Clock peripheral
@@ -178,12 +180,10 @@ impl DateTimeAccess for Rtc {
178
180
let minutes = self . minutes ( ) ?;
179
181
let hours = hours_to_u8 ( self . hours ( ) ?) ?;
180
182
181
- Ok (
182
- NaiveDate :: from_ymd_opt ( year. into ( ) , month. into ( ) , day. into ( ) )
183
- . unwrap ( )
184
- . and_hms_opt ( hours. into ( ) , minutes. into ( ) , seconds. into ( ) )
185
- . unwrap ( ) ,
186
- )
183
+ NaiveDate :: from_ymd_opt ( year. into ( ) , month. into ( ) , day. into ( ) )
184
+ . ok_or ( Error :: InvalidRtcData ) ?
185
+ . and_hms_opt ( hours. into ( ) , minutes. into ( ) , seconds. into ( ) )
186
+ . ok_or ( Error :: InvalidRtcData )
187
187
}
188
188
}
189
189
@@ -332,7 +332,8 @@ impl Rtcc for Rtc {
332
332
let minutes = self . minutes ( ) ?;
333
333
let hours = hours_to_u8 ( self . hours ( ) ?) ?;
334
334
335
- Ok ( NaiveTime :: from_hms_opt ( hours. into ( ) , minutes. into ( ) , seconds. into ( ) ) . unwrap ( ) )
335
+ NaiveTime :: from_hms_opt ( hours. into ( ) , minutes. into ( ) , seconds. into ( ) )
336
+ . ok_or ( Error :: InvalidRtcData )
336
337
}
337
338
338
339
fn weekday ( & mut self ) -> Result < u8 , Self :: Error > {
@@ -365,7 +366,7 @@ impl Rtcc for Rtc {
365
366
let month = self . month ( ) ?;
366
367
let year = self . year ( ) ?;
367
368
368
- Ok ( NaiveDate :: from_ymd_opt ( year. into ( ) , month. into ( ) , day. into ( ) ) . unwrap ( ) )
369
+ NaiveDate :: from_ymd_opt ( year. into ( ) , month. into ( ) , day. into ( ) ) . ok_or ( Error :: InvalidRtcData )
369
370
}
370
371
}
371
372
@@ -379,13 +380,13 @@ fn bcd2_encode(word: u32) -> Result<(u8, u8), Error> {
379
380
let l = match ( word / 10 ) . try_into ( ) {
380
381
Ok ( v) => v,
381
382
Err ( _) => {
382
- return Err ( Error :: InvalidInputData ) ;
383
+ return Err ( Error :: InvalidRtcData ) ;
383
384
}
384
385
} ;
385
386
let r = match ( word % 10 ) . try_into ( ) {
386
387
Ok ( v) => v,
387
388
Err ( _) => {
388
- return Err ( Error :: InvalidInputData ) ;
389
+ return Err ( Error :: InvalidRtcData ) ;
389
390
}
390
391
} ;
391
392
0 commit comments