Skip to content

Commit 863613c

Browse files
bors[bot]chitoyuu
andauthored
Merge #1044
1044: Appease clippy, re-organize `core_types` submodules. r=chitoyuu a=chitoyuu This is a breaking change because avoiding ambiguous globs means that the ambiguous types must be removed from the public interface. I have taken the chance to remove some other dubiously useful type from the top `core_types` module as well. The submodules that contained those types are made public. The `variant_array` module has been renamed to `array` for simplicity. Co-authored-by: Chitose Yuuzaki <chitoyuu@potatoes.gay>
2 parents d2ae902 + a274468 commit 863613c

File tree

11 files changed

+84
-70
lines changed

11 files changed

+84
-70
lines changed

gdnative-bindings/src/generated.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use libc::c_char;
77
use std::mem;
88
use std::ptr;
99

10+
use gdnative_core::core_types::variant::*;
1011
use gdnative_core::core_types::*;
1112
use gdnative_core::object::*;
1213
use gdnative_core::object::{memory, ownership};

gdnative-core/src/core_types/mod.rs

Lines changed: 67 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,36 @@
55
//!
66
//! godot-rust provides optional serialization support for many core types. Enable the feature `serde` to make use of it.
77
8-
mod geom;
9-
10-
mod access;
118
mod color;
12-
mod dictionary;
139
mod error;
1410
mod node_path;
1511
mod pool_array;
1612
mod rid;
17-
mod string;
18-
mod variant;
19-
mod variant_array;
2013
mod vector2;
2114
mod vector3;
2215

23-
pub use access::*;
24-
pub use color::*;
25-
pub use dictionary::*;
16+
pub mod access;
17+
pub mod array;
18+
pub mod dictionary;
19+
pub mod geom;
20+
pub mod string;
21+
pub mod variant;
22+
23+
pub use array::VariantArray;
24+
pub use color::Color;
25+
pub use dictionary::Dictionary;
2626
pub use error::{GodotError, GodotResult};
27-
pub use geom::*;
28-
pub use node_path::*;
29-
pub use pool_array::*;
30-
pub use rid::*;
31-
pub use string::*;
32-
pub use variant::*;
33-
pub use variant_array::*;
34-
pub use vector2::*;
35-
pub use vector3::*;
27+
pub use geom::{Aabb, Basis, Margin, MarginError, Plane, Quat, Rect2, Transform, Transform2D};
28+
pub use node_path::NodePath;
29+
pub use pool_array::{PoolArray, PoolElement};
30+
pub use rid::Rid;
31+
pub use string::{GodotString, StringName};
32+
pub use variant::{
33+
CoerceFromVariant, FromVariant, FromVariantError, OwnedToVariant, ToVariant, ToVariantEq,
34+
Variant, VariantType,
35+
};
36+
pub use vector2::Vector2;
37+
pub use vector3::{Axis, Vector3};
3638

3739
use approx::relative_eq;
3840

@@ -55,3 +57,49 @@ impl IsEqualApprox for f64 {
5557
relative_eq!(self, to, epsilon = CMP_EPSILON)
5658
}
5759
}
60+
61+
#[cfg(feature = "gd-test")]
62+
#[doc(hidden)]
63+
#[inline]
64+
#[must_use]
65+
pub fn test_core_types() -> bool {
66+
let mut status = true;
67+
68+
status &= string::test_string();
69+
status &= string::test_string_name_eq();
70+
status &= string::test_string_name_ord();
71+
72+
status &= array::test_array();
73+
status &= array::test_array_debug();
74+
status &= array::test_array_clone_clear();
75+
status &= dictionary::test_dictionary();
76+
status &= dictionary::test_dictionary_clone_clear();
77+
78+
status &= color::test_color();
79+
status &= vector2::test_vector2_variants();
80+
status &= vector3::test_vector3_variants();
81+
82+
status &= variant::test_variant_nil();
83+
status &= variant::test_variant_i64();
84+
status &= variant::test_variant_bool();
85+
status &= variant::test_variant_option();
86+
status &= variant::test_variant_result();
87+
status &= variant::test_variant_hash_map();
88+
status &= variant::test_variant_hash_set();
89+
status &= variant::test_variant_vec();
90+
status &= variant::test_to_variant_iter();
91+
status &= variant::test_variant_tuple();
92+
status &= variant::test_variant_dispatch();
93+
94+
status &= pool_array::test_byte_array_access();
95+
status &= pool_array::test_int32_array_access();
96+
status &= pool_array::test_float32_array_access();
97+
status &= pool_array::test_color_array_access();
98+
status &= pool_array::test_string_array_access();
99+
status &= pool_array::test_vector2_array_access();
100+
status &= pool_array::test_vector3_array_access();
101+
102+
status &= geom::test_transform2d_behavior();
103+
104+
status
105+
}

gdnative-core/src/core_types/variant/serialize.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ impl<'de> Visitor<'de> for VariantDispatchVisitor {
248248
v.newtype_variant::<Vec<VariantDispatch>>()?
249249
.iter()
250250
.map(Into::<Variant>::into)
251-
.collect::<variant_array::VariantArray<Unique>>()
251+
.collect::<array::VariantArray<Unique>>()
252252
.into_shared(),
253253
),
254254
ByteArray => VariantDispatch::ByteArray(v.newtype_variant()?),

gdnative-core/src/export/method.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,10 @@ type ScriptMethodFn = unsafe extern "C" fn(
9696
*mut *mut sys::godot_variant,
9797
) -> sys::godot_variant;
9898

99-
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
99+
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, Default)]
100100
#[non_exhaustive]
101101
pub enum RpcMode {
102+
#[default]
102103
Disabled,
103104
Remote,
104105
RemoteSync,
@@ -108,13 +109,6 @@ pub enum RpcMode {
108109
PuppetSync,
109110
}
110111

111-
impl Default for RpcMode {
112-
#[inline]
113-
fn default() -> Self {
114-
RpcMode::Disabled
115-
}
116-
}
117-
118112
impl RpcMode {
119113
pub(crate) fn sys(self) -> sys::godot_method_rpc_mode {
120114
match self {

gdnative-core/src/lib.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@
2727
)]
2828
#![cfg_attr(
2929
any(test, feature = "gd-test"),
30-
allow(clippy::excessive_precision, clippy::disallowed_names)
30+
allow(
31+
clippy::excessive_precision,
32+
clippy::disallowed_names,
33+
clippy::redundant_clone
34+
)
3135
)]
3236

3337
#[doc(hidden)]

gdnative-derive/src/variant/from.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ pub(crate) fn expand_from_variant(derive_data: DeriveData) -> Result<TokenStream
149149
use ::gdnative::core_types::ToVariant;
150150
use ::gdnative::core_types::FromVariant;
151151
use ::gdnative::core_types::FromVariantError as FVE;
152-
use ::gdnative::core_types::VariantEnumRepr;
153-
use ::gdnative::core_types::VariantStructRepr;
152+
use ::gdnative::core_types::variant::VariantEnumRepr;
153+
use ::gdnative::core_types::variant::VariantStructRepr;
154154

155155
#return_expr
156156
}

gdnative/src/prelude.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ pub use gdnative_bindings::{
66
};
77
pub use gdnative_core::core_types::{
88
Aabb, Basis, Color, Dictionary, GodotError, GodotString, NodePath, Plane, PoolArray, Quat,
9-
Rect2, Rid, StringName, Transform, Transform2D, Variant, VariantArray, VariantDispatch,
10-
VariantOperator, VariantType, Vector2, Vector3,
9+
Rect2, Rid, StringName, Transform, Transform2D, Variant, VariantArray, VariantType, Vector2,
10+
Vector3,
1111
};
1212
pub use gdnative_core::core_types::{
1313
FromVariant, FromVariantError, OwnedToVariant, ToVariant, ToVariantEq,

test/src/lib.rs

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -25,42 +25,8 @@ pub extern "C" fn run_tests(
2525
_args: *mut gdnative::sys::godot_array,
2626
) -> gdnative::sys::godot_variant {
2727
let mut status = true;
28-
status &= gdnative::core_types::test_string();
29-
status &= gdnative::core_types::test_string_name_eq();
30-
status &= gdnative::core_types::test_string_name_ord();
31-
32-
status &= gdnative::core_types::test_dictionary();
33-
status &= gdnative::core_types::test_dictionary_clone_clear();
34-
status &= gdnative::core_types::test_color();
35-
status &= gdnative::core_types::test_array();
36-
status &= gdnative::core_types::test_array_debug();
37-
status &= gdnative::core_types::test_array_clone_clear();
38-
39-
status &= gdnative::core_types::test_variant_nil();
40-
status &= gdnative::core_types::test_variant_i64();
41-
status &= gdnative::core_types::test_variant_bool();
42-
43-
status &= gdnative::core_types::test_vector2_variants();
44-
45-
status &= gdnative::core_types::test_vector3_variants();
46-
47-
status &= gdnative::core_types::test_variant_option();
48-
status &= gdnative::core_types::test_variant_result();
49-
status &= gdnative::core_types::test_variant_hash_map();
50-
status &= gdnative::core_types::test_variant_hash_set();
51-
status &= gdnative::core_types::test_variant_vec();
52-
status &= gdnative::core_types::test_to_variant_iter();
53-
status &= gdnative::core_types::test_variant_tuple();
54-
status &= gdnative::core_types::test_variant_dispatch();
55-
56-
status &= gdnative::core_types::test_byte_array_access();
57-
status &= gdnative::core_types::test_int32_array_access();
58-
status &= gdnative::core_types::test_float32_array_access();
59-
status &= gdnative::core_types::test_color_array_access();
60-
status &= gdnative::core_types::test_string_array_access();
61-
status &= gdnative::core_types::test_vector2_array_access();
62-
status &= gdnative::core_types::test_vector3_array_access();
63-
status &= gdnative::core_types::test_transform2d_behavior();
28+
29+
status &= gdnative::core_types::test_core_types();
6430

6531
status &= test_from_instance_id();
6632
status &= test_nil_object_return_value();

test/src/test_serde.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use gdnative::core_types::variant::VariantDispatch;
12
use gdnative::prelude::*;
23
use serde::{Deserialize, Serialize};
34

0 commit comments

Comments
 (0)