类 Fiddle::CStruct
表示 C 结构的对象的基类
公共类方法
entity_class() 点击切换源代码
# File ext/fiddle/lib/fiddle/struct.rb, line 12 def CStruct.entity_class CStructEntity end
公共实例方法
each() { |self| ... } 点击切换源代码
# File ext/fiddle/lib/fiddle/struct.rb, line 68 def each return enum_for(__function__) unless block_given? self.class.members.each do |name,| yield(self[name]) end end
each_pair() { |name, self| ... } 点击切换源代码
# File ext/fiddle/lib/fiddle/struct.rb, line 76 def each_pair return enum_for(__function__) unless block_given? self.class.members.each do |name,| yield(name, self[name]) end end
replace(another) 点击切换源代码
# File ext/fiddle/lib/fiddle/struct.rb, line 92 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
to_h() 点击切换源代码
# File ext/fiddle/lib/fiddle/struct.rb, line 84 def to_h hash = {} each_pair do |name, value| hash[name] = unstruct(value) end hash end
私有实例方法
unstruct(value) 点击切换源代码
# File ext/fiddle/lib/fiddle/struct.rb, line 110 def unstruct(value) case value when CStruct value.to_h when Array value.collect do |v| unstruct(v) end else value end end