godot_core/builtin/
mod.rs1pub use crate::gen::central::global_reexported_enums::{Corner, EulerOrder, Side, VariantOperator};
18pub(crate) use crate::gen::central::VariantDispatch;
20pub use crate::sys::VariantType;
21#[allow(deprecated)] pub use crate::{array, dict, real, reals, varray, vdict};
24
25#[doc(hidden)]
26pub mod __prelude_reexport {
27 #[rustfmt::skip] use super::*;
29
30 pub use aabb::*;
31 pub use basis::*;
32 pub use callable::*;
33 pub use collections::containers::*;
34 pub use color::*;
35 pub use color_hsv::*;
36 pub use plane::*;
37 pub use projection::*;
38 pub use quaternion::*;
39 pub use real_inner::*;
40 pub use rect2::*;
41 pub use rect2i::*;
42 pub use rid::*;
43 pub use signal::*;
44 pub use string::{Encoding, GString, NodePath, StringName};
45 pub use transform2d::*;
46 pub use transform3d::*;
47 pub use variant::*;
48 pub use vectors::*;
49
50 pub use super::math::XformInv;
51 pub use super::{EulerOrder, Side, VariantOperator, VariantType};
52 pub use crate::{array, real, reals, varray, vdict, vslice};
53
54 #[allow(deprecated)]
55 #[rustfmt::skip] pub use crate::dict;
57
58 #[cfg(feature = "trace")] pub use crate::static_sname;
60}
61
62pub use __prelude_reexport::*;
63
64pub mod math;
66
67pub mod iter {
70 pub use super::collections::iterators::*;
71}
72
73pub mod strings {
75 pub use super::string::{
76 ExGStringFind, ExGStringSplit, ExStringNameFind, ExStringNameSplit, TransientStringNameOrd,
77 };
78}
79
80pub(crate) mod meta_reexport {
81 pub use super::collections::PackedArrayElement;
82}
83
84mod macros;
89
90mod aabb;
92mod basis;
93mod callable;
94mod collections;
95mod color;
96mod color_constants; mod color_hsv;
98mod plane;
99mod projection;
100mod quaternion;
101mod rect2;
102mod rect2i;
103mod rid;
104mod signal;
105mod string;
106mod transform2d;
107mod transform3d;
108mod variant;
109mod vectors;
110
111#[path = "real.rs"]
113mod real_inner;
114
115#[doc(hidden)]
116pub mod inner {
117 pub use crate::gen::builtin_classes::*;
118}
119
120#[macro_export]
121macro_rules! declare_hash_u32_method {
122 ( $( $docs:tt )+ ) => {
123 $( $docs )+
124 pub fn hash_u32(&self) -> u32 {
125 self.as_inner().hash().try_into().expect("Godot hashes are uint32_t")
126 }
127 }
128}
129
130pub(crate) fn to_i64(i: usize) -> i64 {
134 i.try_into().unwrap()
135}
136
137pub(crate) fn to_usize(i: i64) -> usize {
138 i.try_into().unwrap()
139}
140
141#[cfg(all(test, feature = "serde"))] #[cfg_attr(published_docs, doc(cfg(all(test, feature = "serde"))))]
145pub(crate) mod test_utils {
146 use serde::{Deserialize, Serialize};
147
148 pub(crate) fn roundtrip<T>(value: &T, expected_json: &str)
149 where
150 T: for<'a> Deserialize<'a> + Serialize + PartialEq + std::fmt::Debug,
151 {
152 let json: String = serde_json::to_string(value).unwrap();
153 let back: T = serde_json::from_str(json.as_str()).unwrap();
154
155 assert_eq!(back, *value, "serde round-trip changes value");
156 assert_eq!(
157 json, expected_json,
158 "value does not conform to expected JSON"
159 );
160 }
161}