ffi 1.16.2-java → 1.17.0.rc1-java

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.
@@ -0,0 +1,76 @@
1
+ module FFI
2
+ class Struct[out P < AbstractMemory, unchecked out E]
3
+ type layout = Library::ffi_lib_type | singleton(StructLayout::Field) | [layout, Integer]
4
+
5
+ type ptr = Type::Mapped[
6
+ StructByReference[Struct[AbstractMemory, untyped], AbstractMemory],
7
+ AbstractMemory, instance, untyped
8
+ ]
9
+ def self.ptr: (?untyped flags) -> ptr # https://github.com/ffi/ffi/issues/1073
10
+ alias self.by_ref self.ptr
11
+ def self.in: () -> ptr
12
+ def self.out: () -> ptr
13
+ def self.val: () -> StructByValue[singleton(Struct)]
14
+ alias self.by_value self.val
15
+
16
+ alias self.alloc_inout self.new
17
+ alias self.alloc_in self.new
18
+ alias self.alloc_out self.new
19
+ alias self.new_inout self.new
20
+ alias self.new_in self.new
21
+ alias self.new_out self.new
22
+
23
+ def self.auto_ptr: () -> Type::Mapped[
24
+ ManagedStructConverter[ManagedStruct[AutoPointer, untyped], AutoPointer],
25
+ Pointer, instance, untyped
26
+ ]
27
+ def self.layout: (*layout | Integer) -> StructLayout
28
+ | (Hash[Symbol, layout]) -> StructLayout
29
+ def self.size=: (Integer size) -> Integer
30
+
31
+ def self?.alignment: () -> Integer
32
+ def self?.members: () -> Array[Symbol]
33
+ def self?.offset_of: (Symbol name) -> Integer
34
+ def self?.offsets: () -> Array[[Symbol, Integer]]
35
+ def self?.size: -> Integer
36
+
37
+ def initialize: (?P pointer, *layout args) -> void
38
+ def []: (Symbol field_name) -> E
39
+ def []=: (Symbol field_name, E value) -> E
40
+ alias align alignment
41
+ def clear: () -> self
42
+ def layout: () -> StructLayout
43
+ def null?: () -> bool
44
+ def order: (AbstractMemory::order_in order) -> Struct[P, E]
45
+ | () -> AbstractMemory::order_out
46
+ def pointer: () -> P
47
+ alias to_ptr pointer
48
+ def values: () -> Array[E]
49
+
50
+ class InlineArray[out P < AbstractMemory, unchecked out E]
51
+ include Enumerable[E]
52
+ include AbstractMemory::_Size
53
+
54
+ def initialize: (P memory, StructLayout::Field field) -> self
55
+ def []: (Integer index) -> E
56
+ def []=: (Integer index, E value) -> E
57
+ def each: () { (E) -> void } -> self
58
+ def to_a: () -> Array[E]
59
+ def to_ptr: () -> P
60
+ end
61
+
62
+ class ManagedStructConverter[S < ManagedStruct[P, untyped], P < AutoPointer] < StructByReference[S, P]
63
+ def initialize: ...
64
+ def from_native: (Pointer ptr, untyped ctx) -> S
65
+ end
66
+ end
67
+
68
+ class ManagedStruct[out P < AutoPointer, unchecked out E] < Struct[P, E]
69
+ def self.release: (AbstractMemory ptr) -> void
70
+ def initialize: (Pointer pointer) -> self
71
+ end
72
+
73
+ class Union[out P < AbstractMemory, unchecked out E] < Struct[P, E]
74
+ def self.builder: () -> StructLayoutBuilder
75
+ end
76
+ end
@@ -0,0 +1,11 @@
1
+ module FFI
2
+ class StructByReference[S < Struct[P, untyped], P < AbstractMemory]
3
+ include DataConverter[P, S, untyped]
4
+ attr_reader struct_class: Struct[P, untyped]
5
+
6
+ def initialize: (S struct_class) -> void
7
+ def from_native: (P value, untyped ctx) -> S
8
+ def native_type: () -> Type::Builtin
9
+ def to_native: (S? value, untyped ctx) -> P
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ module FFI
2
+ class StructByValue[C < singleton(Struct)] < Type
3
+ def initialize: (C) -> self
4
+ def layout: () -> StructLayout
5
+ def struct_class: () -> C
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module FFI
2
+ class StructLayout
3
+ #TODO
4
+
5
+ class Field
6
+ #TODO
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ module FFI
2
+ class StructLayoutBuilder
3
+ #TODO
4
+ end
5
+ end
data/sig/ffi/type.rbs ADDED
@@ -0,0 +1,39 @@
1
+ module FFI
2
+ class Type
3
+ class Array = ArrayType
4
+ class Function = FunctionType
5
+ class Struct = StructByValue
6
+
7
+ include AbstractMemory::_Size
8
+ def initialize: (Integer | Type value) -> self
9
+ def alignment: () -> Integer
10
+ def inspect: ...
11
+
12
+ class Builtin < Type
13
+ def inspect: ...
14
+ end
15
+
16
+ class Mapped[X < _DataConverter[N, R, C], N, R, C]
17
+ include _DataConverter[N, R, C]
18
+
19
+ def initialize: (X converter) -> self
20
+ def converter: () -> X
21
+ end
22
+ end
23
+
24
+ class ArrayType
25
+ def initialize: (Type component_type, Integer length) -> self
26
+ def element_type: -> Type
27
+ def length: -> Integer
28
+ end
29
+
30
+ class FunctionType < Type
31
+ def initialize:
32
+ (
33
+ ffi_type return_type, Array[ffi_type] param_types,
34
+ ?blocking: boolish, ?convention: Library::convention, ?enums: Enums
35
+ ) -> self
36
+ def param_types: () -> Array[Type]
37
+ def return_type: () -> Type
38
+ end
39
+ end
data/sig/ffi.rbs ADDED
@@ -0,0 +1,26 @@
1
+ module FFI
2
+ type ffi_type = Type | Symbol
3
+ type ffi_auto_type = ffi_type | DataConverter[untyped, untyped, untyped]
4
+ type type_map = Hash[Symbol | DataConverter[untyped, untyped, untyped], Type]
5
+
6
+ class CallbackInfo = FunctionType
7
+ class FunctionInfo = FunctionType
8
+ class NativeLibrary = DynamicLibrary
9
+
10
+ VERSION: String
11
+ TypeDefs: type_map
12
+
13
+ type current_process = Object
14
+ CURRENT_PROCESS: current_process
15
+ USE_THIS_PROCESS_AS_LIBRARY: current_process
16
+
17
+ private def self.custom_typedefs: () -> type_map
18
+ def self.errno: () -> Integer
19
+ def self.errno=: (Integer) -> nil
20
+ def self.find_type: (ffi_auto_type name, ?type_map? type_map) -> Type
21
+ def self.make_shareable: [T] (T obj) -> T
22
+ def self.map_library_name: (_ToS lib) -> String
23
+ def self.type_size: (ffi_auto_type type) -> Integer
24
+ def self.typedef: (ffi_auto_type old, Symbol add) -> Type
25
+ alias self.add_typedef self.typedef
26
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.2
4
+ version: 1.17.0.rc1
5
5
  platform: java
6
6
  authors:
7
7
  - Wayne Meissner
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIEBDCCAmygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
14
- L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yMzAyMTUxNzQxMTVaFw0yNDAy
15
- MTUxNzQxMTVaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
13
+ MIIEBDCCAmygAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
14
+ L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yNDAyMjgxOTMxNDdaFw0yNTAy
15
+ MjcxOTMxNDdaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
16
16
  PWRlMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwum6Y1KznfpzXOT/
17
17
  mZgJTBbxZuuZF49Fq3K0WA67YBzNlDv95qzSp7V/7Ek3NCcnT7G+2kSuhNo1FhdN
18
18
  eSDO/moYebZNAcu3iqLsuzuULXPLuoU0GsMnVMqV9DZPh7cQHE5EBZ7hlzDBK7k/
@@ -23,17 +23,17 @@ cert_chain:
23
23
  chQPnWX+N3Gj+jjYxqTFdwT7Mj3pv1VHa+aNUbqSPpvJeDyxRIuo9hvzDaBHb/Cg
24
24
  9qRVcm8a96n4t7y2lrX1oookY6bkBaxWOMtWlqIprq8JZXM9AgMBAAGjOTA3MAkG
25
25
  A1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQ4h1tIyvdUWtMI739xMzTR
26
- 7EfMFzANBgkqhkiG9w0BAQsFAAOCAYEAQAcuTARfiiVUVx5KURICfdTM2Kd7LhOn
27
- qt3Vs4ANGvT226LEp3RnQ+kWGQYMRb3cw3LY2TNQRPlnZxE994mgjBscN4fbjXqO
28
- T0JbVpeszRZa5k1goggbnWT7CO7yU7WcHh13DaSubY7HUpAJn2xz9w2stxQfN/EE
29
- VMlnDJ1P7mUHAvpK8X9j9h7Xlc1niViT18MYwux8mboVTryrLr+clATUkkM3yBF0
30
- RV+c34ReW5eXO9Tr6aKTxh/pFC9ggDT6jOxuJgSvG8HWJzVf4NDvMavIas4KYjiI
31
- BU6CpWaG5NxicqL3BERi52U43HV08br+LNVpb7Rekgve/PJuSFnAR015bhSRXe5U
32
- vBioD1qW2ZW9tXg8Ww2IfDaO5a1So5Xby51rhNlyo6ATj2NkuLWZUKPKHhAz0TKm
33
- Dzx/gFSOrRoCt2mXNgrmcAfr386AfaMvCh7cXqdxZwmVo7ILZCYXck0pajvubsDd
34
- NUIIFkVXvd1odFyK9LF1RFAtxn/iAmpx
26
+ 7EfMFzANBgkqhkiG9w0BAQsFAAOCAYEArBmHSfnUyNWf3R1Fx0mMHloWGdcKn2D2
27
+ BsqTApXU2nADiyppIqRq4b9e7hw342uzadSLkoQcEFOxThLRhAcijoWfQVBcsbV/
28
+ ZsCY1qlUTIJuSWxaSyS4efUX+N4eMNyPM9oW/sphlWFo0DgI34Y9WB6HDzH+O71y
29
+ R7PARke3f4kYnRJf5yRQLPDrH9UYt9KlBQm6l7XMtr5EMnQt0EfcmZEi9H4t/vS2
30
+ haxvpFMdAKo4H46GBYNO96r6b74t++vgQSBTg/AFVwvRZwNSrPPcBfb4xxeEAhRR
31
+ x+LU7feIH7lZ//3buiyD03gLAEtHXai0Y+/VfuWIpwYJAl2BO/tU7FS/dtbJq9oc
32
+ dI36Yyzy+BrCM0WT4oCsagePNb97FaNhl4F6sM5JEPT0ZPxRx0i3G4TNNIYziVos
33
+ 5wFER6XhvvLDFAMh/jMg+s7Wd5SbSHgHNSUaUGVtdWkVPOer6oF0aLdZUR3CETkn
34
+ 5nWXZma/BUd3YgYA/Xumc6QQqIS4p7mr
35
35
  -----END CERTIFICATE-----
36
- date: 2023-09-25 00:00:00.000000000 Z
36
+ date: 2024-04-08 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: rake
@@ -200,9 +200,28 @@ files:
200
200
  - samples/getpid.rb
201
201
  - samples/gettimeofday.rb
202
202
  - samples/hello.rb
203
+ - samples/hello_ractor.rb
203
204
  - samples/inotify.rb
204
205
  - samples/pty.rb
205
206
  - samples/qsort.rb
207
+ - samples/qsort_ractor.rb
208
+ - sig/ffi.rbs
209
+ - sig/ffi/abstract_memory.rbs
210
+ - sig/ffi/auto_pointer.rbs
211
+ - sig/ffi/buffer.rbs
212
+ - sig/ffi/data_converter.rbs
213
+ - sig/ffi/dynamic_library.rbs
214
+ - sig/ffi/enum.rbs
215
+ - sig/ffi/function.rbs
216
+ - sig/ffi/library.rbs
217
+ - sig/ffi/native_type.rbs
218
+ - sig/ffi/pointer.rbs
219
+ - sig/ffi/struct.rbs
220
+ - sig/ffi/struct_by_reference.rbs
221
+ - sig/ffi/struct_by_value.rbs
222
+ - sig/ffi/struct_layout.rbs
223
+ - sig/ffi/struct_layout_builder.rbs
224
+ - sig/ffi/type.rbs
206
225
  homepage: https://github.com/ffi/ffi/wiki
207
226
  licenses:
208
227
  - BSD-3-Clause
@@ -230,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
249
  - !ruby/object:Gem::Version
231
250
  version: '0'
232
251
  requirements: []
233
- rubygems_version: 3.4.19
252
+ rubygems_version: 3.5.3
234
253
  signing_key:
235
254
  specification_version: 4
236
255
  summary: Ruby FFI
metadata.gz.sig CHANGED
Binary file