class GLib::SList

Overrides for GSList, GLib's singly-linked list implementation.

Public Class Methods

from_enumerable(type, arr) click to toggle source
# File lib/ffi-glib/s_list.rb, line 22
def self.from_enumerable type, arr
  arr.reverse.inject(self.new type) { |lst, val|
    lst.prepend val }
end
new(type) click to toggle source
# File lib/ffi-glib/s_list.rb, line 14
def self.new type
  _real_new.tap do |it|
    struct = self::Struct.new(FFI::Pointer.new(0))
    it.instance_variable_set :@struct, struct
    it.element_type = type
  end
end

Public Instance Methods

prepend(data) click to toggle source
# File lib/ffi-glib/s_list.rb, line 27
def prepend data
  elm_t = element_type
  data_ptr = GirFFI::InPointer.from(elm_t, data)
  self.class.wrap(elm_t, Lib.g_slist_prepend(self, data_ptr))
end