Make generated bindings no_std compatible and add CStr symbol names feature #551
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Generated bindings no_std compatibility
The generated bindings was already using core functions, but was getting them through re-exports of std. This is now replaced to use the original core ones. Now the generated bindings works in no_std enviroments 🎉
&CStr symbols support
Right now, if the user needs a null-terminated c-string from the
gl::load_with
function, they need to convert the &str to a CString. Since CString is only available in std and requires an allocator, the usage in std enviroments is limited.With this pull request, using Rust 2021 edition C-string literals, the user have the possibility to enable the feature
cstr_symbols
on bothgl_generator
andgl
to generate the bindings using&'static CStr
instead of&'static str
.Examples of this problem can be seen on both SDL2 and SDL3 safe wrappers, where they need to perform a conversion using CString.