There's various pieces of the API that should probably be hidden or made non-constructable.
Hiding functions would allow us to later replace or alter the code behind them without breaking 'good' plugins because they shouldn't be using them directly. Making some structures non-constructable would let us add fields in the future easily.
handle_rpc is an internal function, it should be #[doc(hidden)].
- Ideally users should never have to use
object_from_stdin/object_from_stdout. These should probably be internal, and we just pass the requests/notifications to the plugin.
parse_stdin should be hidden
Http should be made non-constructable (add a hidden empty marker field), just in case.
VoltEnvironment should be made non-constructable.
- Really I think
VoltEnvironment should have to be created if you want to use it.
- Would let us cache values in the future.
PluginError should perhaps be #[non_exhaustive] in case we want to add other error kinds with types in the future.
There's various pieces of the API that should probably be hidden or made non-constructable.
Hiding functions would allow us to later replace or alter the code behind them without breaking 'good' plugins because they shouldn't be using them directly. Making some structures non-constructable would let us add fields in the future easily.
handle_rpcis an internal function, it should be#[doc(hidden)].object_from_stdin/object_from_stdout. These should probably be internal, and we just pass the requests/notifications to the plugin.parse_stdinshould be hiddenHttpshould be made non-constructable (add a hidden empty marker field), just in case.VoltEnvironmentshould be made non-constructable.VoltEnvironmentshould have to be created if you want to use it.PluginErrorshould perhaps be#[non_exhaustive]in case we want to add other error kinds with types in the future.