godot_core/global/
mod.rs

1/*
2 * Copyright (c) godot-rust; Bromeon and contributors.
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
6 */
7
8//! Godot global enums, constants and utility functions.
9//!
10//! See also [Godot docs for `@GlobalScope`](https://docs.godotengine.org/en/stable/classes/class_@globalscope.html#methods).
11//!
12//! # Builtin-related enums
13//!
14//! The library ships several additional enums in places where GDScript would use magic numbers. These are co-located with
15//! builtin types, in the [`godot::builtin`][crate::builtin] module. The enums are:
16//!
17//! - Color: [`ColorChannelOrder`][crate::builtin::ColorChannelOrder]
18//! - Projection: [`ProjectionEye`][crate::builtin::ProjectionEye], [`ProjectionPlane`][crate::builtin::ProjectionPlane]
19//! - Rectangle: [`Side`], [`Corner`] <sub>(godot-generated)</sub>
20//! - Rotation: [`EulerOrder`] <sub>(godot-generated)</sub>
21//! - Variant: [`VariantType`][crate::builtin::VariantType], [`VariantOperator`][crate::builtin::VariantOperator]
22//! - Vector: [`Vector2Axis`][crate::builtin::Vector2Axis], [`Vector3Axis`][crate::builtin::Vector3Axis], [`Vector4Axis`][crate::builtin::Vector4Axis]
23//!
24//! # Functions moved to dedicated APIs
25//!
26//! Some methods in `@GlobalScope` are not directly available in `godot::global` module, but rather in their related types.  \
27//! You can find them as follows:
28//!
29//! | Godot utility function | godot-rust APIs                                                                                                                      |
30//! |------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
31//! | `instance_from_id`     | [`Gd::from_instance_id()`][crate::obj::Gd::from_instance_id]<br>[`Gd::try_from_instance_id()`][crate::obj::Gd::try_from_instance_id()] |
32//! | `is_instance_valid`    | [`Gd::is_instance_valid()`][crate::obj::Gd::is_instance_valid()]                                                                     |
33//! | `is_instance_id_valid` | [`InstanceId::lookup_validity()`][crate::obj::InstanceId::lookup_validity()]                                                         |
34//!
35
36// Doc aliases are also available in dedicated APIs, but directing people here may give them a bit more context.
37#![doc(
38    alias = "instance_from_id",
39    alias = "is_instance_valid",
40    alias = "is_instance_id_valid"
41)]
42
43mod print;
44
45// Some enums are directly re-exported from crate::builtin.
46pub use crate::gen::central::global_enums::*;
47pub use crate::gen::utilities::*;
48pub use crate::{
49    godot_error, godot_print, godot_print_rich, godot_script_error, godot_str, godot_warn,
50};
51
52// ----------------------------------------------------------------------------------------------------------------------------------------------
53// Internal re-exports
54
55// This is needed for generated classes to find symbols, even those that have been moved to crate::builtin.
56#[allow(unused_imports)] // micromanaging imports for generated code is not fun
57#[rustfmt::skip] // Do not reorder.
58pub(crate) use crate::builtin::{Corner, EulerOrder, Side};
59
60// ----------------------------------------------------------------------------------------------------------------------------------------------
61// Deprecations