File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
10
10
- Added ` core::error::Error ` implementations for every custom ` impl Error `
11
11
- Increased MSRV to 1.81 due to ` core::error::Error `
12
12
13
+ ### Added
14
+
15
+ - ` as_raw_unchecked ` getter function for ` Id `
16
+
13
17
## [ v0.4.1] - 2022-09-28
14
18
15
19
### Removed
Original file line number Diff line number Diff line change @@ -104,6 +104,24 @@ pub enum Id {
104
104
Extended ( ExtendedId ) ,
105
105
}
106
106
107
+ impl Id {
108
+ /// Returns the CAN Identifier as a raw 32-bit integer, ignoring the distinction between
109
+ /// standard ID and extended ID.
110
+ ///
111
+ /// This function ignores that a standard ID and an extended ID are different IDs, even
112
+ /// if their numerical values are the same. It should only be used if the raw numerical value
113
+ /// is required and the distinction between standard ID and extended ID is irrelevant.
114
+ ///
115
+ /// In all other cases, it is recommended to de-structure the ID with a match statement.
116
+ #[ inline]
117
+ pub fn as_raw_unchecked ( & self ) -> u32 {
118
+ match self {
119
+ Id :: Standard ( id) => id. as_raw ( ) as u32 ,
120
+ Id :: Extended ( id) => id. as_raw ( ) ,
121
+ }
122
+ }
123
+ }
124
+
107
125
/// Implement `Ord` according to the CAN arbitration rules
108
126
///
109
127
/// When performing arbitration, frames are looked at bit for bit starting
You can’t perform that action at this time.
0 commit comments