go-virtualbox
go-virtualbox copied to clipboard
[WIP] Manager Interface
This is part of a long series of changes. It expands on the sentiment of the Command interface, but with the goal of handing everything as a method of the Manager interface.
Why? So its easier to test and change the functionality of the package. Currently its nearly impossible for a consumer of the package to test, as everything is operated using functions, and methods on structs such as Machine. The Manager interface will contain every API call.
The code is currently 100% compatible with existing version, and simply builds on the existing code. For convenience, Run() function is exposed, which can be used to run any command using the default manager, while the APIs are being migrated.
Once the full migration completes, the previous functions will be deprecated and later removed. This most likely will mean v2 of the library, but it is fair distance away.
Resolves #16