in crates/libs/core/src/types/common/partition.rs [87:116]
fn from(value: &FABRIC_SERVICE_PARTITION_INFORMATION) -> Self {
match value.Kind {
FABRIC_SERVICE_PARTITION_KIND_SINGLETON => {
let raw = unsafe {
(value.Value as *const FABRIC_SINGLETON_PARTITION_INFORMATION)
.as_ref()
.unwrap()
};
Self::Singleton(raw.into())
}
FABRIC_SERVICE_PARTITION_KIND_INT64_RANGE => {
let raw = unsafe {
(value.Value as *const FABRIC_INT64_RANGE_PARTITION_INFORMATION)
.as_ref()
.unwrap()
};
Self::Int64Range(raw.into())
}
FABRIC_SERVICE_PARTITION_KIND_NAMED => {
let raw = unsafe {
(value.Value as *const FABRIC_NAMED_PARTITION_INFORMATION)
.as_ref()
.unwrap()
};
Self::Named(raw.into())
}
FABRIC_SERVICE_PARTITION_KIND_INVALID => Self::Invalid,
_ => Self::Invalid,
}
}