use thiserror::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,
}