pub(crate) use crate::r#gen::central::VariantDispatch;
pub use crate::r#gen::central::global_reexported_enums::{
Corner, EulerOrder, Side, VariantOperator,
};
pub use crate::sys::VariantType;
pub use crate::{array, dict, iarray, idict, real, reals, varray, vdict};
#[doc(hidden)]
pub type CowStr = std::borrow::Cow<'static, str>;
#[doc(hidden)]
pub mod __prelude_reexport {
#[rustfmt::skip] use super::*;
pub use aabb::*;
pub use callable::*;
pub use collections::containers::*;
pub use color::*;
pub use color_hsv::*;
pub use matrices::*;
pub use plane::*;
pub use quaternion::*;
pub use real_inner::*;
pub use rect2::*;
pub use rect2i::*;
pub use rid::*;
pub use signal::*;
pub use strings::{Encoding, GString, NodePath, StringName};
pub use variant::*;
pub use vectors::*;
pub use super::math::XformInv;
pub use super::{EulerOrder, VariantOperator, VariantType};
#[cfg(feature = "trace")] pub use crate::static_sname;
pub use crate::{array, dict, iarray, idict, real, reals, varray, vdict, vslice};
}
pub use crate::r#gen::builtin_classes::*;
pub mod gstring {
pub use crate::builtin::strings::{GStringExFind as ExFind, GStringExSplit as ExSplit};
pub use crate::r#gen::builtin_classes::gstring::*;
}
pub mod string_name {
pub use crate::builtin::strings::{
StringNameExFind as ExFind, StringNameExSplit as ExSplit, TransientStringNameOrd,
};
pub use crate::r#gen::builtin_classes::string_name::*;
}
pub use __prelude_reexport::*;
pub mod math;
pub mod iter {
pub use super::collections::iterators::*;
}
pub(crate) mod meta_reexport {
pub use super::collections::PackedElement;
}
mod macros;
mod aabb;
mod callable;
mod collections;
mod color;
mod color_constants; mod color_hsv;
mod matrices;
mod plane;
mod quaternion;
mod rect2;
mod rect2i;
mod rid;
mod signal;
mod strings;
mod variant;
mod vectors;
#[path = "real.rs"]
mod real_inner;
#[doc(hidden)]
pub mod inner {
pub use crate::r#gen::builtin_classes::*;
}
#[macro_export]
macro_rules! declare_hash_u32_method {
( $( $docs:tt )+ ) => {
$( $docs )+
pub fn hash_u32(&self) -> u32 {
self.as_inner().hash().try_into().expect("Godot hashes are uint32_t")
}
}
}
pub(crate) fn to_i64(i: usize) -> i64 {
i.try_into().unwrap()
}
pub(crate) fn to_usize(i: i64) -> usize {
i.try_into().unwrap()
}
#[cfg(all(test, feature = "serde"))] #[cfg_attr(published_docs, doc(cfg(all(test, feature = "serde"))))]
pub(crate) mod test_utils {
use serde::{Deserialize, Serialize};
pub(crate) fn roundtrip<T>(value: &T, expected_json: &str)
where
T: for<'a> Deserialize<'a> + Serialize + PartialEq + std::fmt::Debug,
{
let json: String = serde_json::to_string(value).unwrap();
let back: T = serde_json::from_str(json.as_str()).unwrap();
assert_eq!(back, *value, "serde round-trip changes value");
assert_eq!(
json, expected_json,
"value does not conform to expected JSON"
);
}
}