Comments (2)
Thanks! I think if we want to keep using that feature, we should probably run tests with and without it in CI.
from gdext.
Originally the intention of convenience
(possibly to be renamed as yolo
😀) was that someone who wants to be aware of fallible operations can disable that feature and the number of panicking functions will be drastically reduced.
That said, I'm not sure if there are people truly wishing for that or if it's something we want to encourage as a best practice, as it has two notable downsides:
- Verbosity of code that never fails due to external invariants.
- E.g. scene tree has a certain structure, so getting a node of a given name/type must succeed or it's a bug.
- If I know the value on GDScript side fits into a
u8
, thento_variant()
must succeed or it's a bug.
- Worse error messages.
- People tend to use
unwrap()
orexpect("literal")
, which lacks context information. get_node_as::<T>("path")
on the other hand can include a precise panic message, e.g. "there is a node at pathpath
with typeU
, but typeT
was requested".
- People tend to use
Maybe I'll remove this feature but keep the commented-out #[cfg]
statements around in case we want to re-introduce it later. Keeping it may add quite some maintenance overhead which is probably not justifiable at this stage of the library.
from gdext.
Related Issues (20)
- Support using `Base` for initialization in `init` function HOT 7
- Impl `Iterator::size_hint()` for `Dictionary` iterator types HOT 3
- Support every class-registration option that Godot offers HOT 1
- AutoLoaded scenes through an EditorPlugin GodotClass are not added the scene of the editor node tree HOT 7
- Module `convert_error` is private HOT 2
- GDExt panics when two structs from different modules are named the same HOT 1
- `Gd<Self>` return type causes type error when fn annotated with `#[func]` HOT 2
- Implement (or derive) GodotType for godot compatible repr enums HOT 2
- Godot editor crashes when hot reloading gdext library with custom resources HOT 6
- Import Godot docs for builtin types HOT 7
- No recommended way to call `Base<T>` methods from `init` HOT 2
- Single- and multi-threading support for `Callable::from_fn` HOT 1
- `gdext`-based custom resource format tools needs `experimental-threads` feature HOT 2
- Add the the ability to iterate over Godot enums HOT 3
- Hot reloading issues HOT 6
- Nested Exported Resource requires `experimental-threads` feature HOT 1
- Dependency among GdExtensions HOT 5
- Gdext-dependent crate fails during Github Actions CI build
- `must_have_an_init_method` is too strict HOT 5
- Refer to `#[func]` names in type-safe ways (not just strings) HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gdext.