/// Remove all registered C plugins of this trait.
///
/// # Parameters
///
/// - `out_error`: receives a heap-allocated error string on failure.
///
/// # Safety
///
/// `out_error` may be null. When non-null, the caller owns the resulting string
/// and must free it with `{{ free_string_fn }}`.
#[unsafe(no_mangle)]
pub unsafe extern "C" fn {{ full_clear_name }}(
    out_error: *mut *mut std::ffi::c_char,
) -> i32 {
    let registry = {{ registry_getter }}();
    let mut registry = registry.write();
    if let Err(e) = registry.clear() {
        ffi_set_out_error(out_error, &e.to_string());
        return 1;
    }
    0
}
