wasmtime 25.0.2-arm64-darwin → 27.0.0-arm64-darwin

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: 2a705c9e91313f2930179eff5025414a3e6a1a2c67bfb79c7c8f26f0fb25dfd7
4
- data.tar.gz: a074a88fbe94f24e58c65858658244497230a491740775be52a4e3beee74bc7a
3
+ metadata.gz: 13ee824b2f7808df439f98dbf740e6b9b3b859179bdeff13cead861ce074fa1a
4
+ data.tar.gz: c6e1ff53174297c68692cd67382641ceeb008dcb352f75196e1dd6979d79a375
5
5
  SHA512:
6
- metadata.gz: 997424632d9d569ef2d12ba0a42fc44709e058131c4ce7273120208bf8f2fafd0960cb4f42420a09f22b440e133ea498525078300fa6aaddc6004f93a758cdfa
7
- data.tar.gz: ffdb4b4fe04a83cde0b3347863aabd6cd811ce729b5cab7a4dcc0f7aaaa38734dd3cf4aba573a05c789211e01a8564b8682c814ad8596a30a91697bd4e6571b0
6
+ metadata.gz: 4c97a1d48e673fc51a7f7855c9076649a476630b202afd014f99ae170a1709101cd85fec397d88174710e0e6b99b285fb04394c2aca2150ef1834425b0d0820c
7
+ data.tar.gz: d1fbb62c21c0ceefcf64ca5fa944fb6ca8ea4460a4134abef2252e1c2161ccf1d21907939391f9cb83c93b805c8c21cb067a437500c1c7c735ba06836bdc8679
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: arm64-darwin
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.bundle
24
24
  - lib/wasmtime/3.2/wasmtime_rb.bundle
25
25
  - lib/wasmtime/3.3/wasmtime_rb.bundle
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