Re-export os::<platform>::Symbol from top-level as RawSymbol#95
Open
mitchmindtree wants to merge 1 commit intonagisa:masterfrom
Open
Re-export os::<platform>::Symbol from top-level as RawSymbol#95mitchmindtree wants to merge 1 commit intonagisa:masterfrom
os::<platform>::Symbol from top-level as RawSymbol#95mitchmindtree wants to merge 1 commit intonagisa:masterfrom
Conversation
Currently, it's not possible to name the underlying raw lifetime-less `Symbol` type in a cross-platform manner without the user adding some platform-specific compiler flags and re-exporting it from each `os` module themselves, e.g. something like: ```rust use libloading::os::windows::Symbol as RawSymbol; use libloading::os::unix::Symbol as RawSymbol; ``` The idea behind this PR is to allow users to refer to the type directly as `libloading::RawSymbol`. Motivation: I'm currently using `libloading` in a project where I'm hot-loading a handful of very hot functions. Rather than load the `Symbol` on every frame I thought I'd load them once and store the raw symbol alongside the `Library`, though realised the `os::platform::Symbol` path mentioned in the docs doesn't exist and quickly ran into the issue mentioned above.
Owner
|
Hi. there was a request to do so in the past in #40, and nothing has meaningfully changed since then. If the goal is to only get access to an implementation that does not enforce the lifetime constraints, then what should be done is another cross-platform wrapper, much like the current |
Owner
|
Some other approaches you could take are: use a |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Currently, it's not possible to name the underlying raw lifetime-less
Symboltype in a cross-platform manner without the user adding someplatform-specific compiler flags and re-exporting it from each
osmodule themselves, e.g. something like:
The idea behind this PR is to allow users to refer to the type directly
as
libloading::RawSymbol.Motivation: I'm currently using
libloadingin a project where I'mhot-loading a handful of very hot functions. Rather than load the
Symbolon every frame I thought I'd load them once and store the rawsymbol alongside the
Library, though realised theos::platform::Symbolpath mentioned in the docs doesn't exist andquickly ran into the issue mentioned above.
@nagisa let me know if something like this sounds OK or if I'm missing something!