-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exporting same Foreign Type in two different Libraries #134
Comments
That's not possible yet, unfortunately. The main challenge I see is that it can't be truly guaranteed they'll be the same types on the Rust side either; even if they both use the same version of a crate, the libraries can be built with different versions of Rust which can cause issues due to ABI incompatibilities. I'm not sure what the best solution is. For now I would recommend either writing a single library, or sticking with |
Hm that is indeed sad. But this is a hard problem. Regarding the different Rust versions problem, wouldn't requiring Anyway I will try to avoid this situation for now using a different approach, sticking to only one crate is not an option. So I will need to do some sort of serialization/deserialization. |
Yeah, I was thinking along similar lines. The main issue I see is that every exposed type would need to be |
Consider the following Situation:
I have a rust-crate and corresponding JuliaPackage that use
jlrs
lets call this packagejlrs-foo
it exports an OpaqueType.Now there is a second jlrs Package that depends on
jlrs-foo
, it has its own types, but also wants to have some function that actually return the typeFoo
fromjlrs-foo
. Lets call this packagejlrs-bar
Here is what I have tried
jlrs-bar/src/lib.rs
:But this leads to the situation that I now have two forein types that are from rusts perspective the same type, but not from Julias perspective:
Since Julia is strongly typed I can not just convert one into the other. I have tried to do that a few different ways, always ending up in a julia error. This is annoying, because I can not just use the value of
jlrsbar_get_foo
like and other value of typeFoo
when it is constructed inJlrsFoo
.I have also tried not exporting the type in
jlrs-bar
and instead try to returnValueRet
instead ofTypedValueRef<Foo>
, but this just leads me down into core dump situations.Any Ideas how to solve/deal with this Situation?
The text was updated successfully, but these errors were encountered: