-
Notifications
You must be signed in to change notification settings - Fork 19
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
Higher-level and more safe API #10
Comments
It's fair to say it's also unclear to me. The current code, as you can see, defaults to a pretty low amount of wrapping (e.g. sending through |
Marshall, thank you for the answer. That's nice to see the project is still under maintenance. We'll take another look and come with some suggestions on the plugin API if that's ok. |
Hi!
Thanks for helpful library!
Are there any plans to implement more higher-level and safe API?
I have kind of proposal but there are many details it lacks.
Plugin
trait which defines all the callbacks user should implementin two ways: low-level (raw) and high-level. The latter operates on more idiomatic
Rust entities such as references, Rust structs, strings and numeric values
while the former leaves all the raw details in place allowing to skip possibly
slow conversions and defaults to calling 'high-level' methods.
extern "C"
functions along withstatic
declaration of user object which implements
Plugin
trait. Functions just dealwith acquisition of
static
object and call methods on it.init
callback can be more elaborate - it can initialize callbacks to Janus Corewhich crate then will use to provide more high-level API for them (just regular public functions, no need to fetch
global
PluginCallbacks
object and call functions there).It's unclear to me how to wrap all Janus objects from outside in more convenient
and safe way.
What do you think of this?
The text was updated successfully, but these errors were encountered: