godot_core/registry/info/
param_metadata.rs1use godot_ffi as sys;
9
10#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
16#[allow(non_camel_case_types)]
17#[non_exhaustive]
18pub enum ParamMetadata {
19 #[default]
21 NONE,
22
23 INT_IS_INT8,
25
26 INT_IS_INT16,
28
29 INT_IS_INT32,
31
32 INT_IS_INT64,
34
35 INT_IS_UINT8,
37
38 INT_IS_UINT16,
40
41 INT_IS_UINT32,
43
44 INT_IS_UINT64,
46
47 INT_IS_CHAR16,
49
50 INT_IS_CHAR32,
52
53 REAL_IS_FLOAT,
55
56 REAL_IS_DOUBLE,
58
59 OBJECT_IS_REQUIRED,
63}
64
65impl ParamMetadata {
66 pub fn to_sys(self) -> sys::GDExtensionClassMethodArgumentMetadata {
68 match self {
69 Self::INT_IS_INT8 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT8,
70 Self::INT_IS_INT16 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT16,
71 Self::INT_IS_INT32 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT32,
72 Self::INT_IS_INT64 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT64,
73 Self::INT_IS_UINT8 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT8,
74 Self::INT_IS_UINT16 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT16,
75 Self::INT_IS_UINT32 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT32,
76 Self::INT_IS_UINT64 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT64,
77 Self::REAL_IS_FLOAT => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_REAL_IS_FLOAT,
78 Self::REAL_IS_DOUBLE => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_REAL_IS_DOUBLE,
79
80 #[cfg(since_api = "4.4")] #[cfg_attr(published_docs, doc(cfg(since_api = "4.4")))]
82 Self::INT_IS_CHAR16 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_CHAR16,
83 #[cfg(since_api = "4.4")] #[cfg_attr(published_docs, doc(cfg(since_api = "4.4")))]
84 Self::INT_IS_CHAR32 => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_CHAR32,
85 #[cfg(since_api = "4.6")] #[cfg_attr(published_docs, doc(cfg(since_api = "4.6")))]
86 Self::OBJECT_IS_REQUIRED => {
87 sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_OBJECT_IS_REQUIRED
88 }
89
90 _ => sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE,
92 }
93 }
94}