From ad27113f424c5988ed00ffae2af892845a2f501d Mon Sep 17 00:00:00 2001 From: zach Date: Tue, 12 Dec 2023 16:24:50 -0800 Subject: [PATCH] chore: add extism_plugin_reset --- src/bindings.ml | 2 ++ src/extism.mli | 3 +++ src/plugin.ml | 3 +++ 3 files changed, 8 insertions(+) diff --git a/src/bindings.ml b/src/bindings.ml index b3d80ee..e5caf2c 100644 --- a/src/bindings.ml +++ b/src/bindings.ml @@ -181,3 +181,5 @@ let extism_plugin_cancel = fn "extism_plugin_cancel" (ptr void @-> returning bool) let extism_plugin_id = fn "extism_plugin_id" (ptr void @-> returning (ptr char)) + +let extism_plugin_reset = fn "extism_plugin_reset" (ptr void @-> returning bool) diff --git a/src/extism.mli b/src/extism.mli index aa9ea55..b76766a 100644 --- a/src/extism.mli +++ b/src/extism.mli @@ -403,6 +403,9 @@ module Plugin : sig (** Free a plugin immediately, this isn't normally required unless there are a lot of plugins open at once *) + val reset : t -> bool + (** Reset the Extism runtime, this will invalidate all allocated memory *) + val function_exists : t -> string -> bool (** Check if a function is exported by a plugin *) diff --git a/src/plugin.ml b/src/plugin.ml index d00a106..69d4c6d 100644 --- a/src/plugin.ml +++ b/src/plugin.ml @@ -203,3 +203,6 @@ let id { pointer; _ } = let id = Bindings.extism_plugin_id pointer in let s = Ctypes.string_from_ptr id ~length:16 in Uuidm.unsafe_of_bytes s + +let reset { pointer; _ } = + Bindings.extism_plugin_reset pointer