Skip to content

Commit b3e4ae4

Browse files
authored
Merge branch 'master' into dev
2 parents f3005f0 + 10e5e0e commit b3e4ae4

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

ReadMe.md

+11-8
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ _**[Website]** | **[Book][book]** | **[API Docs]** | [Discord] | [Mastodon] | [T
99
[Godot] is an open-source game engine, focusing on a productive and batteries-included 2D and 3D experience.
1010
Its _GDExtension_ API allows integrating third-party languages and libraries.
1111

12-
If you are looking for a Rust binding for Godot 3 (GDNative API), check out [`gdnative`].
12+
Rust bindings for Godot 3 (GDNative API) are available in [`gdnative`].
1313

1414

1515
## Philosophy
@@ -28,11 +28,13 @@ The gdext library has evolved a lot during 2023 and 2024 and is now in a usable
2828
However, there are still certain things to keep in mind.
2929

3030
> [!WARNING]
31-
> The public API introduces breaking changes from time to time. Most of these are motivated by new features and
32-
> improved ergonomics for existing ones. See also [API stability] in the book.
31+
> The public API introduces breaking changes from time to time, primarily motivated by new features and improved ergonomics.
32+
> Our [crates.io releases][crates-io] adhere to SemVer, but may lag behind the `master` branch. See also [API stability] in the book.
3333
34-
**Features:** While most Godot features are available, some less commonly used ones are missing. See [#24] for an up-to-date overview.
35-
At this point, there is little support for [Android] or [iOS], and [Wasm] is experimental. Contributions are very welcome!
34+
**Features:** Most Godot APIs have been mapped at this point. The current focus lies on a more natural Rust experience and enable more design
35+
patterns that come in handy for day-to-day game development. See [#24] for an up-to-date feature overview.
36+
37+
At the moment, there is experimental support for [Wasm], [Android] and [iOS], but documentation and tooling is still lacking. Contributions are very welcome!
3638

3739
**Bugs:** Most undefined behavior related to the FFI layer has been ironed out, but there may still be occasional safety issues. Apart from that,
3840
new additions to the library are typically not feature-complete from the start, but become more robust with feedback and testing over time.
@@ -42,14 +44,14 @@ To counter bugs, we have an elaborate CI suite including clippy, unit tests, eng
4244
## Getting started
4345

4446
To dive into Rust development with gdext, check out [the godot-rust book][book]. The book is still under construction,
45-
but already covers a Hello World setup as well as several more in-depth chapters.
47+
but already covers a _Hello World_ setup as well as several more in-depth chapters.
4648

4749
To consult the API reference, have a look at the online [API Docs].
4850

4951
Furthermore, we provide a small example game in the [`examples/dodge-the-creeps` directory][dodge-the-creeps].
5052
The example [`examples/hot-reload`][hot-reload] demonstrates hot-reloading in the Godot editor.
5153

52-
If you need help, join our [Discord] server and ask in the `#help-gdext` channel!
54+
If you need help, join our [Discord] server and ask in the `#help` channel!
5355

5456

5557
## License
@@ -82,4 +84,5 @@ Contributions are very welcome! If you want to help out, see [`Contributing.md`]
8284
[hot-reload]: examples/hot-reload
8385
[iOS]: https://github.com/godot-rust/gdext/issues/498
8486
[mpl]: https://www.mozilla.org/en-US/MPL
85-
[philosophy]: https://godot-rust.github.io/book/contribute/philosophy.html
87+
[philosophy]: https://godot-rust.github.io/book/contribute/philosophy.html
88+
[crates-io]: https://crates.io/crates/godot

godot-core/src/meta/class_name.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,12 @@ impl ClassNameSource {
9696
/// This struct is very cheap to copy. The actual names are cached globally.
9797
///
9898
/// If you need to create your own class name, use [`new_cached()`][Self::new_cached].
99-
#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
99+
///
100+
/// # Ordering
101+
///
102+
/// `ClassName`s are **not** ordered lexicographically, and the ordering relation is **not** stable across multiple runs of your
103+
/// application. When lexicographical order is needed, it's possible to convert this type to [`GString`] or [`String`].
104+
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
100105
pub struct ClassName {
101106
global_index: u16,
102107
}

0 commit comments

Comments
 (0)