File: auto_pointer.rbs

package info (click to toggle)
ruby-ffi 1.17.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,988 kB
  • sloc: ruby: 9,446; ansic: 7,713; xml: 151; sh: 51; makefile: 14
file content (27 lines) | stat: -rw-r--r-- 888 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module FFI
  class AutoPointer < Pointer
    class Releaser
      attr_accessor autorelease: boolish
      interface _Proc[P < Pointer]
        def call: (P) -> void
      end
      def initialize: [P < Pointer] (P ptr, _Proc[P] proc) -> void

      def call: (*untyped) -> void
      def free: () -> nil
      def release: (Pointer ptr) -> void
    end

    def initialize: (Pointer pointer, Method | ^(self) -> void | Releaser::_Proc[self] callable) -> self
                # | (Pointer pointer) { (self) -> void } -> self # https://github.com/ffi/ffi/issues/1071
                  | (Pointer pointer) -> self # where class < `def self.release: (instance pointer) -> void`

    extend DataConverter[Pointer, instance, nil]
    def self.from_native: ...
    def self.native_type: () -> Type::Builtin

    def autorelease?: ...
    def autorelease=: ...
    def free: () -> nil
  end
end