A base class for objects representing a C structure
# File ext/fiddle/lib/fiddle/struct.rb, line 12 def CStruct.entity_class CStructEntity end
accessor to Fiddle::CStructEntity
# File ext/fiddle/lib/fiddle/struct.rb, line 16 def each return enum_for(__function__) unless block_given? self.class.members.each do |name,| yield(self[name]) end end
# File ext/fiddle/lib/fiddle/struct.rb, line 24 def each_pair return enum_for(__function__) unless block_given? self.class.members.each do |name,| yield(name, self[name]) end end
# File ext/fiddle/lib/fiddle/struct.rb, line 40 def replace(another) if another.nil? self.class.members.each do |name,| self[name] = nil end elsif another.respond_to?(:each_pair) another.each_pair do |name, value| self[name] = value end else another.each do |name, value| self[name] = value end end self end
# File ext/fiddle/lib/fiddle/struct.rb, line 32 def to_h hash = {} each_pair do |name, value| hash[name] = unstruct(value) end hash end
# File ext/fiddle/lib/fiddle/struct.rb, line 58 def unstruct(value) case value when CStruct value.to_h when Array value.collect do |v| unstruct(v) end else value end end
Ruby Core © 1993–2020 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.