diff options
author | Henri Chataing <henrichataing@google.com> | 2023-03-30 21:50:09 +0000 |
---|---|---|
committer | Ayush Jain <ayushjain@google.com> | 2023-04-05 03:14:40 +0000 |
commit | 30434955ff7fc67df078de4ba01cf2aeccafbd4c (patch) | |
tree | 5934cb952365f98dd07c052027130f4dcc1cbb8e /src/rust/uwb_uci_packets | |
parent | 6948e353bdf56045acf57df0e69e0ef53e5655ce (diff) | |
download | uwb-30434955ff7fc67df078de4ba01cf2aeccafbd4c.tar.gz |
Update use of generated PDL enum types
- ToPrimitive and FromPrimitive are no longer derived,
intead From<uN> and Into<uN> are implemented
- The enum type is no longer a primitive type,
type conversion needs to be done with uN::from
Bug: 267339120
Test: cd src/rust/uwb_uci_packets && cargo build
Change-Id: I3d3d14d11448ec6795ab08cff3ca25b55291302c
Merged-In: I3d3d14d11448ec6795ab08cff3ca25b55291302c
Diffstat (limited to 'src/rust/uwb_uci_packets')
-rw-r--r-- | src/rust/uwb_uci_packets/src/lib.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/rust/uwb_uci_packets/src/lib.rs b/src/rust/uwb_uci_packets/src/lib.rs index bc95bc3..68b93b8 100644 --- a/src/rust/uwb_uci_packets/src/lib.rs +++ b/src/rust/uwb_uci_packets/src/lib.rs @@ -22,6 +22,8 @@ use std::cmp; use log::error; +use num_derive::FromPrimitive; +use num_traits::FromPrimitive; use zeroize::Zeroize; include!(concat!(env!("OUT_DIR"), "/uci_packets.rs")); @@ -246,19 +248,19 @@ generate_extract_func!(extract_u64, u64); // keep the two enums in sync, for any additional values defined in the UCI spec). impl From<GroupId> for GroupIdOrDataPacketFormat { fn from(gid: GroupId) -> Self { - GroupIdOrDataPacketFormat::from_u8(gid.to_u8().unwrap()).unwrap() + GroupIdOrDataPacketFormat::try_from(u8::from(gid)).unwrap() } } impl From<GroupIdOrDataPacketFormat> for GroupId { fn from(gid_or_dpf: GroupIdOrDataPacketFormat) -> Self { - GroupId::from_u8(gid_or_dpf.to_u8().unwrap()).unwrap() + GroupId::try_from(u8::from(gid_or_dpf)).unwrap() } } impl From<DataPacketFormat> for GroupIdOrDataPacketFormat { fn from(dpf: DataPacketFormat) -> Self { - GroupIdOrDataPacketFormat::from_u8(dpf.to_u8().unwrap()).unwrap() + GroupIdOrDataPacketFormat::try_from(u8::from(dpf)).unwrap() } } @@ -268,7 +270,7 @@ impl TryFrom<GroupIdOrDataPacketFormat> for DataPacketFormat { type Error = Error; fn try_from(gid_or_dpf: GroupIdOrDataPacketFormat) -> Result<Self> { - DataPacketFormat::from_u8(gid_or_dpf.to_u8().unwrap()).ok_or(Error::InvalidPacketError) + DataPacketFormat::try_from(u8::from(gid_or_dpf)).or(Err(Error::InvalidPacketError)) } } |