Skip to content

Commit 0ac08b1

Browse files
committed
Merge RectSide -> Side enum
1 parent 20d8c7e commit 0ac08b1

File tree

5 files changed

+44
-39
lines changed

5 files changed

+44
-39
lines changed

godot-core/src/builtin/mod.rs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ pub mod strings {
8888
pub use super::string::TransientStringNameOrd;
8989
}
9090

91+
use crate::engine::global::Side;
92+
9193
// ----------------------------------------------------------------------------------------------------------------------------------------------
9294
// Implementation
9395

@@ -151,14 +153,22 @@ pub(crate) fn u8_to_bool(u: u8) -> bool {
151153
/// The side of a [`Rect2`] or [`Rect2i`].
152154
///
153155
/// _Godot equivalent: `@GlobalScope.Side`_
154-
#[doc(alias = "Side")]
155-
#[derive(Copy, Clone, Debug)]
156-
#[repr(C)]
157-
pub enum RectSide {
158-
Left = 0,
159-
Top = 1,
160-
Right = 2,
161-
Bottom = 3,
156+
#[deprecated(note = "Merged with `godot::global::Side`.")]
157+
pub type RectSide = Side;
158+
159+
#[allow(non_upper_case_globals)]
160+
impl Side {
161+
#[deprecated(note = "Renamed to `Side::LEFT`.")]
162+
pub const Left: Side = Side::LEFT;
163+
164+
#[deprecated(note = "Renamed to `Side::TOP`.")]
165+
pub const Top: Side = Side::TOP;
166+
167+
#[deprecated(note = "Renamed to `Side::RIGHT`.")]
168+
pub const Right: Side = Side::RIGHT;
169+
170+
#[deprecated(note = "Renamed to `Side::BOTTOM`.")]
171+
pub const Bottom: Side = Side::BOTTOM;
162172
}
163173

164174
// ----------------------------------------------------------------------------------------------------------------------------------------------

godot-core/src/builtin/rect2.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ use godot_ffi as sys;
99
use sys::{ffi_methods, GodotFfi};
1010

1111
use crate::builtin::math::ApproxEq;
12-
use crate::builtin::{real, Rect2i, RectSide, Vector2};
12+
use crate::builtin::{real, Rect2i, Vector2};
13+
use crate::engine::global::Side;
1314

1415
use super::meta::impl_godot_as_self;
1516

@@ -147,12 +148,12 @@ impl Rect2 {
147148
/// `amount` may be negative, but care must be taken: If the resulting `size` has
148149
/// negative components the computation may be incorrect.
149150
#[inline]
150-
pub fn grow_side(&self, side: RectSide, amount: real) -> Self {
151+
pub fn grow_side(&self, side: Side, amount: real) -> Self {
151152
match side {
152-
RectSide::Left => self.grow_individual(amount, 0.0, 0.0, 0.0),
153-
RectSide::Top => self.grow_individual(0.0, amount, 0.0, 0.0),
154-
RectSide::Right => self.grow_individual(0.0, 0.0, amount, 0.0),
155-
RectSide::Bottom => self.grow_individual(0.0, 0.0, 0.0, amount),
153+
Side::LEFT => self.grow_individual(amount, 0.0, 0.0, 0.0),
154+
Side::TOP => self.grow_individual(0.0, amount, 0.0, 0.0),
155+
Side::RIGHT => self.grow_individual(0.0, 0.0, amount, 0.0),
156+
Side::BOTTOM => self.grow_individual(0.0, 0.0, 0.0, amount),
156157
}
157158
}
158159

godot-core/src/builtin/rect2i.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77

88
use std::cmp;
99

10+
use crate::engine::global::Side;
1011
use godot_ffi as sys;
1112
use sys::{ffi_methods, GodotFfi};
1213

13-
use super::{meta::impl_godot_as_self, Rect2, RectSide, Vector2i};
14+
use super::{meta::impl_godot_as_self, Rect2, Vector2i};
1415

1516
/// 2D axis-aligned integer bounding box.
1617
///
@@ -164,12 +165,12 @@ impl Rect2i {
164165
/// `amount` may be negative, but care must be taken: If the resulting `size` has
165166
/// negative components the computation may be incorrect.
166167
#[inline]
167-
pub fn grow_side(self, side: RectSide, amount: i32) -> Self {
168+
pub fn grow_side(self, side: Side, amount: i32) -> Self {
168169
match side {
169-
RectSide::Left => self.grow_individual(amount, 0, 0, 0),
170-
RectSide::Top => self.grow_individual(0, amount, 0, 0),
171-
RectSide::Right => self.grow_individual(0, 0, amount, 0),
172-
RectSide::Bottom => self.grow_individual(0, 0, 0, amount),
170+
Side::LEFT => self.grow_individual(amount, 0, 0, 0),
171+
Side::TOP => self.grow_individual(0, amount, 0, 0),
172+
Side::RIGHT => self.grow_individual(0, 0, amount, 0),
173+
Side::BOTTOM => self.grow_individual(0, 0, 0, amount),
173174
}
174175
}
175176

@@ -502,25 +503,25 @@ mod test {
502503
assert!(end.encloses(begin));
503504

504505
let now = begin.grow_individual(3, 0, 0, 0);
505-
let now_side = begin.grow_side(RectSide::Left, 3);
506+
let now_side = begin.grow_side(Side::LEFT, 3);
506507
assert_ne!(now, end);
507508
assert_eq!(now, now_side);
508509
assert!(end.encloses(now));
509510

510511
let now = now.grow_individual(0, 3, 0, 0);
511-
let now_side = now_side.grow_side(RectSide::Top, 3);
512+
let now_side = now_side.grow_side(Side::TOP, 3);
512513
assert_ne!(now, end);
513514
assert_eq!(now, now_side);
514515
assert!(end.encloses(now));
515516

516517
let now = now.grow_individual(0, 0, 3, 0);
517-
let now_side = now_side.grow_side(RectSide::Right, 3);
518+
let now_side = now_side.grow_side(Side::RIGHT, 3);
518519
assert_ne!(now, end);
519520
assert_eq!(now, now_side);
520521
assert!(end.encloses(now));
521522

522523
let now = now.grow_individual(0, 0, 0, 3);
523-
let now_side = now_side.grow_side(RectSide::Bottom, 3);
524+
let now_side = now_side.grow_side(Side::BOTTOM, 3);
524525
assert_eq!(now, end);
525526
assert_eq!(now, now_side);
526527
}

itest/rust/src/builtin_tests/geometry/rect2_test.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ use crate::framework::itest;
99

1010
use godot::builtin::inner::InnerRect2;
1111
use godot::builtin::math::assert_eq_approx;
12-
use godot::builtin::{real, reals, RealConv, Rect2, RectSide, Vector2};
12+
use godot::builtin::{real, reals, RealConv, Rect2, Vector2};
13+
use godot::engine::global::Side;
1314

1415
#[itest]
1516
fn rect2_inner_equivalence() {
@@ -29,12 +30,7 @@ fn rect2_inner_equivalence() {
2930
];
3031
let reals = reals![0.0, 1.0, 32.0];
3132
let grow_values = reals![-1.0, 0.0, 7.0];
32-
let sides = [
33-
RectSide::Left,
34-
RectSide::Top,
35-
RectSide::Right,
36-
RectSide::Bottom,
37-
];
33+
let sides = [Side::LEFT, Side::TOP, Side::RIGHT, Side::BOTTOM];
3834

3935
for rect in rects {
4036
let inner_rect = InnerRect2::from_outer(&rect);

itest/rust/src/builtin_tests/geometry/rect2i_test.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ use std::fmt::Debug;
99

1010
use crate::framework::itest;
1111
use godot::builtin::inner::InnerRect2i;
12-
use godot::builtin::{Rect2i, RectSide, Vector2i};
12+
use godot::builtin::{Rect2i, Vector2i};
13+
use godot::engine::global::Side;
14+
use godot::obj::EngineEnum;
1315

1416
#[itest]
1517
fn rect2i_equiv_unary() {
@@ -28,12 +30,7 @@ fn rect2i_equiv_unary() {
2830
Vector2i::new(10, 10),
2931
];
3032
let test_ints = [0, 1, 10, 32];
31-
let test_sides = [
32-
RectSide::Left,
33-
RectSide::Top,
34-
RectSide::Right,
35-
RectSide::Bottom,
36-
];
33+
let test_sides = [Side::LEFT, Side::TOP, Side::RIGHT, Side::BOTTOM];
3734

3835
fn evaluate_mappings<T>(key: &str, a: T, b: T)
3936
where
@@ -87,7 +84,7 @@ fn rect2i_equiv_unary() {
8784
evaluate_mappings(
8885
"grow_side",
8986
a.grow_side(b, c),
90-
inner_a.grow_side(b as i64, c as i64),
87+
inner_a.grow_side(b.ord() as i64, c as i64),
9188
);
9289
}
9390
}

0 commit comments

Comments
 (0)