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}