pub type IFunctionDiscoveryProviderFactory = *mut c_void;