extism 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a0cad81a83dcdc58020a5a0bffa909efcb1f56c8eff664282d64c5f286bc081b
4
- data.tar.gz: 16670ad1f0600f434abd8f5bfb61a0c58be4dae1d32d29152fa1df0550031d65
3
+ metadata.gz: 3b540fbbf71c7df6e1830473a374de243616af3fbed809b54e65d54b97521ca4
4
+ data.tar.gz: 9c37464eb99dd16e7481e6ad1b1a46385b2b8c33861041ede0d055cbdaab2317
5
5
  SHA512:
6
- metadata.gz: cb352c2bdea03716671c44c0b476eddf37312cbf088969d28cd7fd7a4242b1445fa745094f7b88f5d493196ec0406a50b15a5cfc5d09aee65282173639c1b94e
7
- data.tar.gz: b33aacb1b9d3253e8bc85fe408be763ffe3aa8176103f7f4d760ca5190878eafdbd669d70d0fb34045aa020266aff2d658fb8b2ff7e935cfe58d227756d5a252
6
+ metadata.gz: 541a4167c2985a8adecb5565d6c4fca794c87de64ccd10bbde410f22c752e9eaaf16686306ec280e9755deeafa47866b6bf26a098cb54199c6185ed6321fadfc
7
+ data.tar.gz: f3711e03292689c31547d22bc099ec356e07fa7876698c8d00cc5d0ab4b54f0f76377bca5d34789e76766978b9bd620721d11639143fde06572ef07ec07b086f
data/Gemfile CHANGED
@@ -11,5 +11,5 @@ gem "ffi", "~> 1.15.5"
11
11
  group :development do
12
12
  gem "yard", "~> 0.9.28"
13
13
  gem "rufo", "~> 0.13.0"
14
- gem "minitest", "~> 5.17.0"
14
+ gem "minitest", "~> 5.18.0"
15
15
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Extism
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/lib/extism.rb CHANGED
@@ -115,6 +115,18 @@ module Extism
115
115
  end
116
116
  end
117
117
 
118
+ # A CancelHandle can be used to cancel a running plugin from another thread
119
+ class CancelHandle
120
+ def initialize(handle)
121
+ @handle = handle
122
+ end
123
+
124
+ # Cancel the plugin used to generate the handle
125
+ def cancel
126
+ return C.extism_plugin_cancel(@handle)
127
+ end
128
+ end
129
+
118
130
  # A Plugin represents an instance of your WASM program from the given manifest.
119
131
  class Plugin
120
132
  # Intialize a plugin
@@ -219,6 +231,11 @@ module Extism
219
231
  C.extism_plugin_free(@context.pointer, @plugin)
220
232
  @plugin = -1
221
233
  end
234
+
235
+ # Get a CancelHandle for a plugin
236
+ def cancel_handle
237
+ return CancelHandle.new(C.extism_plugin_cancel_handle(@context.pointer, @plugin))
238
+ end
222
239
  end
223
240
 
224
241
  private
@@ -241,5 +258,7 @@ module Extism
241
258
  attach_function :extism_plugin_free, [:pointer, :int32], :void
242
259
  attach_function :extism_context_reset, [:pointer], :void
243
260
  attach_function :extism_version, [], :string
261
+ attach_function :extism_plugin_cancel_handle, [:pointer, :int32], :pointer
262
+ attach_function :extism_plugin_cancel, [:pointer], :bool
244
263
  end
245
264
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extism
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - zach
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-19 00:00:00.000000000 Z
11
+ date: 2023-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi