wasmtime 25.0.2-x64-mingw-ucrt → 27.0.0-x64-mingw-ucrt

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: 53c25f743e00c1e7570d71e4f4bcb1e79c3442a740fe22f229d953a3890ee0a9
4
- data.tar.gz: e56e854e81dd3a7532bdd58e48992acd47cd8b49c184ded60e9e00977d0f4a7b
3
+ metadata.gz: 3f306012d25c5f3a0a95f872c2103fca6e8cb77edad9991fe11572fcf9eebb23
4
+ data.tar.gz: bda1c838cf71141493f3d53d0dffb7b5e086c6043ccece83493d8bb91b9a9be7
5
5
  SHA512:
6
- metadata.gz: 83ef84a05f6c5fabaa4a9a180a85a80e13a10ac50f40c60f744e8b4fbf43e24a606028143ff2588c3ccaf278ed8dcfc3f52227f9bc63b62fb0298e2a5f4bcfa6
7
- data.tar.gz: 27efe3ee3b670d95bcdf75733648adf5556fd72111728438d9bfd3cf2f6ab3e8dbbc5351182c42954ea0da16a4c60bd4a146e7ae97255fd507ac5b2fc9681c04
6
+ metadata.gz: 786b5fad5bf005e9688652eea7cf4631646ba061cf679d5c123d00de80fddaf11506a52bf8e0a5410c32f006011660f60ba288be4f9c175984072efd229056b2
7
+ data.tar.gz: 6f2555ad3ad43755f663f1dad4d71022c5850aadc00dd4235c3b13c3d0f40166747686280c78ae53ff5f05b83e9639fdf5f2cfb933121205d0434a5561f46b74
Binary file
Binary file
Binary file
@@ -0,0 +1,132 @@
1
+ # To prevent double loading of this file when `ruby-api` is enabled
2
+ return if defined?(Wasmtime::Component::Result)
3
+
4
+ module Wasmtime
5
+ # @note Support for Wasm components in the Ruby bindings is experimental. APIs may change in the future.
6
+ module Component
7
+ # Represents a component model's +result<O, E>+ type.
8
+ class Result
9
+ class << self
10
+ # Construct an ok result.
11
+ # @param ok [Object] the ok value
12
+ # @return [Result]
13
+ def ok(ok)
14
+ new(true, ok)
15
+ end
16
+
17
+ # Construct an error result.
18
+ # @param error [Object] the error value
19
+ # @return [Result]
20
+ def error(error)
21
+ new(false, error)
22
+ end
23
+
24
+ private :new
25
+ end
26
+
27
+ # Returns the ok value of this Result if it is {#ok?}, otherwise raises.
28
+ # @raise [UncheckedResult] if this is an error
29
+ # @return [Object]
30
+ def ok
31
+ raise UncheckedResult, "expected ok, was error" unless ok?
32
+
33
+ @value
34
+ end
35
+
36
+ # Returns the error value of this Result if it is {#error?}, otherwise raises.
37
+ # @raise [UncheckedResult] if this is an ok
38
+ # @return [Object]
39
+ def error
40
+ raise UncheckedResult, "expected error, was ok" unless error?
41
+
42
+ @value
43
+ end
44
+
45
+ # @return [Boolean] Whether the result is ok
46
+ def ok?
47
+ @ok
48
+ end
49
+
50
+ # @return [Boolean] Whether the result is an error
51
+ def error?
52
+ !@ok
53
+ end
54
+
55
+ def ==(other)
56
+ eql?(other)
57
+ end
58
+
59
+ def eql?(other)
60
+ return false unless self.class == other.class
61
+ return false unless ok? == other.ok?
62
+
63
+ if ok?
64
+ ok == other.ok
65
+ else
66
+ error == other.error
67
+ end
68
+ end
69
+
70
+ def hash
71
+ [self.class, @ok, @value].hash
72
+ end
73
+
74
+ def initialize(ok, value)
75
+ @ok = ok
76
+ @value = value
77
+ end
78
+
79
+ class UncheckedResult < Wasmtime::Error; end
80
+
81
+ # Hide the constructor from YARD's doc so that `.ok` or
82
+ # `.error` is used over `.new`.
83
+ private :initialize
84
+ end
85
+
86
+ # Represents a value for component model's variant case.
87
+ # A variant case has a name that uniquely identify the case within the
88
+ # variant and optionally a value.
89
+ #
90
+ # @example Constructing variants
91
+ # # Given the following variant:
92
+ # # variant filter {
93
+ # # all,
94
+ # # none,
95
+ # # lt(u32),
96
+ # # }
97
+ #
98
+ # Variant.new("all")
99
+ # Variant.new("none")
100
+ # Variant.new("lt", 100)
101
+ class Variant
102
+ # The name of the variant case
103
+ # @return [String]
104
+ attr_reader :name
105
+
106
+ # The optional payload of the variant case
107
+ # @return [Object]
108
+ attr_reader :value
109
+
110
+ # @param name [String] the name of variant case
111
+ # @param value [Object] the optional payload of the variant case
112
+ def initialize(name, value = nil)
113
+ @name = name
114
+ @value = value
115
+ end
116
+
117
+ def ==(other)
118
+ eql?(other)
119
+ end
120
+
121
+ def eql?(other)
122
+ self.class == other.class &&
123
+ name == other.name &&
124
+ value == other.value
125
+ end
126
+
127
+ def hash
128
+ [self.class, @name, @value].hash
129
+ end
130
+ end
131
+ end
132
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Wasmtime
4
- VERSION = "25.0.2"
4
+ VERSION = "27.0.0"
5
5
  end
data/lib/wasmtime.rb CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  require_relative "wasmtime/version"
4
4
 
5
+ module Wasmtime
6
+ end
7
+
5
8
  # Tries to require the extension for the given Ruby version first
6
9
  begin
7
10
  RUBY_VERSION =~ /(\d+\.\d+)/
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wasmtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 25.0.2
4
+ version: 27.0.0
5
5
  platform: x64-mingw-ucrt
6
6
  authors:
7
7
  - The Wasmtime Project Developers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-09 00:00:00.000000000 Z
11
+ date: 2024-11-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby binding for Wasmtime, a WebAssembly runtime.
14
14
  email:
@@ -23,6 +23,7 @@ files:
23
23
  - lib/wasmtime/3.1/wasmtime_rb.so
24
24
  - lib/wasmtime/3.2/wasmtime_rb.so
25
25
  - lib/wasmtime/3.3/wasmtime_rb.so
26
+ - lib/wasmtime/component.rb
26
27
  - lib/wasmtime/error.rb
27
28
  - lib/wasmtime/version.rb
28
29
  homepage: https://github.com/BytecodeAlliance/wasmtime-rb