This module and its submodules implement a type-safe wrapper around Rust types such that any
suitable type can be passed as a parameter to the C probing libraries with a minimum of
overhead.
The result of a provider init is either a string with some free-form details about the
provider, or a string indicating the error which prevented the provider from initializing