extism 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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