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 @@ -12,6 +12,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
12
12
- Bumped ` defmt ` to v1
13
13
- ` defmt-03 ` feature is now named ` defmt `
14
14
15
+ ### Added
16
+
17
+ - ` as_raw_unchecked ` getter function for ` Id `
18
+
15
19
## [ v0.4.1] - 2022-09-28
16
20
17
21
### 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 const 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