# File lib/ffi-glib/list_methods.rb, line 8 def self.included base base.extend ContainerClassMethods # Override default field accessors. replace_method base, :next, :tail replace_method base, :data, :head end
# File lib/ffi-glib/list_methods.rb, line 15 def self.replace_method base, old, new base.class_eval do remove_method old alias_method old, new end end
# File lib/ffi-glib/list_methods.rb, line 42 def ==(other) self.to_a == other.to_a end
# File lib/ffi-glib/list_methods.rb, line 22 def each reset_iterator while (elem = next_element) yield elem end end
# File lib/ffi-glib/list_methods.rb, line 33 def head GirFFI::ArgHelper.cast_from_pointer(element_type, @struct[:data]) end
# File lib/ffi-glib/list_methods.rb, line 37 def reset_typespec typespec self.element_type = typespec self end
# File lib/ffi-glib/list_methods.rb, line 29 def tail self.class.wrap(element_type, @struct[:next]) end
# File lib/ffi-glib/list_methods.rb, line 52 def next_element return if !@current element = @current.head @current = @current.tail element end
# File lib/ffi-glib/list_methods.rb, line 48 def reset_iterator @current = self end