require 'ffi'
module {{ ci.namespace()|class_name_rb }}
{% include "Helpers.rb" %}
{% include "RustBufferTemplate.rb" %}
{% include "RustBufferStream.rb" %}
{% include "RustBufferBuilder.rb" %}
{% include "ErrorTemplate.rb" %}
{% include "NamespaceLibraryTemplate.rb" %}
{% for e in ci.enum_definitions() %}
{% if !ci.is_name_used_as_error(e.name()) %}
{% include "EnumTemplate.rb" %}
{% endif %}
{%- endfor -%}
{%- for rec in ci.record_definitions() %}
{% include "RecordTemplate.rb" %}
{% endfor %}
{% for func in ci.function_definitions() %}
{% include "TopLevelFunctionTemplate.rb" %}
{% endfor %}
{% for obj in ci.object_definitions() %}
{% include "ObjectTemplate.rb" %}
{% endfor %}
end
{% import "macros.rb" as rb %}