gc_plugin_abi 0.5.0

Gridcore Plugin API
Documentation
use thiserror::Error;

//TODO: Remove dependency on gc_error
#[derive(Error, Debug)]
pub enum GCMockingError {
    #[error("Error finding exported function ({0}), ensure the macro gc_plugin is correctly defined. OS Error: {1}")]
    ErrorLoadingPluginMacroFunction(String, String),
    #[error("Error finding own module using dlopen. OS Error: {0}")]
    ErrorFindingOwnModule(String),
    #[error("Error initializing plugin")]
    ErrorPluginInitFailed,
    #[error("Error loading json configuration: {0}")]
    ErrorLoadingConfiguration(#[from] serde_json::Error),
    #[error("Error converting to CString: {0}")]
    ErrorConvertingToCString(#[from] std::ffi::NulError),
    #[error("Error, plugin was already loaded")]
    ErrorPluginAlreadyLoaded,
    #[error("Error, plugin was not loaded")]
    ErrorPluginNotLoaded,
}