playerone_sdk_sys/
lib.rs

1pub use bindings::*;
2
3#[allow(non_snake_case, non_upper_case_globals, non_camel_case_types)]
4mod bindings {
5    include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
6}
7
8impl From<bool> for POABool {
9    fn from(value: bool) -> Self {
10        match value {
11            true => POABool::POA_TRUE,
12            false => POABool::POA_FALSE,
13        }
14    }
15}
16
17impl From<POABool> for bool {
18    fn from(value: POABool) -> Self {
19        match value {
20            POABool::POA_TRUE => true,
21            POABool::POA_FALSE => false,
22        }
23    }
24}
25
26impl From<f64> for POAConfigValue {
27    fn from(value: f64) -> Self {
28        POAConfigValue { floatValue: value }
29    }
30}
31
32impl From<i64> for POAConfigValue {
33    fn from(value: i64) -> Self {
34        POAConfigValue { intValue: value }
35    }
36}
37
38impl From<bool> for POAConfigValue {
39    fn from(value: bool) -> Self {
40        POAConfigValue {
41            boolValue: value.into(),
42        }
43    }
44}
45
46pub unsafe trait FromPOAConfigValue {
47    fn from_poa_config_value(value: POAConfigValue) -> Self;
48}
49
50unsafe impl FromPOAConfigValue for f64 {
51    fn from_poa_config_value(value: POAConfigValue) -> Self {
52        unsafe { value.floatValue }
53    }
54}
55
56unsafe impl FromPOAConfigValue for i64 {
57    fn from_poa_config_value(value: POAConfigValue) -> Self {
58        unsafe { value.intValue }
59    }
60}
61
62unsafe impl FromPOAConfigValue for bool {
63    fn from_poa_config_value(value: POAConfigValue) -> Self {
64        unsafe { value.boolValue.into() }
65    }
66}