341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
|
# File 'lib/ctypes/struct.rb', line 341
def self.export_type(q)
q << "CTypes::Struct.builder()"
q.break
q.nest(2) do
q << ".name(%p)\n" % [@name] if @name
q << ".endian(%p)\n" % [@endian] if @endian
@fields.each do |name, type|
case name
when Symbol
q << ".attribute(%p, " % [name]
q << type
q << ")"
q.break
when ::Array
q << ".attribute("
q << type
q << ")"
q.break
when Pad
q << type
q.break
else
raise Error, "unsupported field name type: %p" % [name]
end
end
q << ".build()"
end
end
|