Skip to main content

wslplugins_rs/user_distribution_id/
uuid_impl.rs

1use super::UserDistributionID;
2use uuid::Uuid;
3
4impl From<UserDistributionID> for Uuid {
5    #[inline]
6    fn from(value: UserDistributionID) -> Self {
7        Self::from_u128(value.0.to_u128())
8    }
9}
10
11impl From<Uuid> for UserDistributionID {
12    #[inline]
13    fn from(value: Uuid) -> Self {
14        Self(windows_core::GUID::from_u128(value.as_u128()))
15    }
16}
17
18#[cfg(test)]
19mod tests {
20    use super::*;
21    use proptest::prelude::*;
22    use uuid::{fmt::Hyphenated, Uuid};
23    proptest! {
24        #[test]
25        fn test_uuid_user_distribution_id_conversion(int_value in any::<u128>()) {
26            let guid = windows_core::GUID::from_u128(int_value);
27            let user_dist_id: UserDistributionID = guid.into();
28            let converted_uuid: Uuid = user_dist_id.into();
29            prop_assert_eq!(format!("{:}", user_dist_id), format!("{:X}", Hyphenated::from(converted_uuid)));
30            prop_assert_eq!(format!("{:X}", user_dist_id), format!("{:X}", Hyphenated::from(converted_uuid)));
31            prop_assert_eq!(format!("{:x}", user_dist_id), format!("{:x}", Hyphenated::from(converted_uuid)));
32        }
33    }
34}