Sha256: 8b35f2cc02cd243482b32f671e3248c769f04607d86dc0569b1956b6bd85a4f1
Contents?: true
Size: 813 Bytes
Versions: 3
Compression:
Stored size: 813 Bytes
Contents
require 'ffi-glib/list_methods' module GLib load_class :SList # Overrides for GSList, GLib's singly linked list implementation. class SList include ListMethods # Override default field accessors. undef :next undef :data alias :next :tail alias :data :head class << self undef :new def new type _real_new(FFI::Pointer.new(0)).tap {|it| it.element_type = type} end def from_array type, arr return nil if arr.nil? return arr if arr.is_a? self arr.reverse.inject(self.new type) { |lst, val| lst.prepend val } end end def prepend data data_ptr = GirFFI::InPointer.from(element_type, data) self.class.wrap(element_type, Lib.g_slist_prepend(self, data_ptr)) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gir_ffi-0.2.2 | lib/ffi-glib/s_list.rb |
gir_ffi-0.2.1 | lib/ffi-glib/s_list.rb |
gir_ffi-0.2.0 | lib/ffi-glib/s_list.rb |