blob: e3631b68de4f7887a4fb1d3d5446f17a029f785d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# This file was autogenerated by some hot garbage in the `uniffi` crate.
# Trust me, you don't want to mess with it!
# Common helper code.
#
# Ideally this would live in a separate .rb file where it can be unittested etc
# in isolation, and perhaps even published as a re-useable package.
#
# However, it's important that the details of how this helper code works (e.g. the
# way that different builtin types are passed across the FFI) exactly match what's
# expected by the rust code on the other side of the interface. In practice right
# now that means coming from the exact some version of `uniffi` that was used to
# compile the rust component. The easiest way to ensure this is to bundle the Ruby
# helpers directly inline like we're doing here.
require 'ffi'
module {{ ci.namespace()|class_name_rb }}
{% include "Helpers.rb" %}
{% include "RustBufferTemplate.rb" %}
{% include "RustBufferStream.rb" %}
{% include "RustBufferBuilder.rb" %}
# Error definitions
{% include "ErrorTemplate.rb" %}
{% include "NamespaceLibraryTemplate.rb" %}
# Public interface members begin here.
{% 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 %}
|