-
Notifications
You must be signed in to change notification settings - Fork 43
/
cbindgen.toml
107 lines (98 loc) · 4.36 KB
/
cbindgen.toml
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# An optional string of text to output at the beginning of the generated file
#header = "/* Text to put at the beginning of the generated file. Probably a license. */"
# An optional string of text to output at the end of the generated file
#trailer = "/* Text to put at the end of the generated file */"
# An optional name to use as an include guard
#include_guard = "mozilla_wr_bindings_h"
# An optional string of text to output between major sections of the generated
# file as a warning against manual editing
autogen_warning = "/* Warning, this file is autogenerated by cbindgen. Don't modify this manually. */"
# Whether to include a comment with the version of cbindgen used to generate the
# file
include_version = true
# An optional namespace to output around the generated bindings
#namespace = "ffi"
# An optional list of namespaces to output around the generated bindings
#namespaces = ["mozilla", "wr"]
# The style to use for curly braces
#braces = "SameLine"
# The desired length of a line to use when formatting lines
line_length = 80
# The amount of spaces in a tab
tab_width = 4
# The language to output bindings in
language = "C"
# A rule to use to select style of declaration in C, tagname vs typedef
style = "Tag"
[defines]
# A rule for generating `#ifdef`s for matching `#[cfg]`ed items,
# e.g. `#[cfg(foo = "bar")] ...` -> `#if defined(FOO_IS_BAR) ... #endif`
#"foo = bar" = "FOO_IS_BAR"
[parse]
# Whether to parse dependent crates and include their types in the generated
# bindings
parse_deps = false
# A white list of crate names that are allowed to be parsed
#include = ["webrender", "webrender_traits"]
# A black list of crate names that are not allowed to be parsed
exclude = ["libc"]
# Whether to use a new temporary target directory when running `rustc --pretty=expanded`.
# This may be required for some build processes.
clean = false
[parse.expand]
# A list of crate names that should be run through `cargo expand` before
# parsing to expand any macros
#crates = ["euclid"]
# If enabled, use the `--all-features` option when expanding. Ignored when
# `features` is set. Disabled by default, except when using the
# `expand = ["euclid"]` shorthand for backwards-compatibility.
all_features = false
# When `all_features` is disabled and this is also disabled, use the
# `--no-default-features` option when expanding. Enabled by default.
default_features = true
# A list of feature names that should be used when running `cargo expand`. This
# combines with `default_features` like in `Cargo.toml`. Note that the features
# listed here are features for the current crate being built, *not* the crates
# being expanded. The crate's `Cargo.toml` must take care of enabling the
# appropriate features in its dependencies
features = ["cbindgen"]
[export]
# A list of additional items not used by exported functions to include in
# the generated bindings
#include = ["Foo", "Bar"]
# A list of items to not include in the generated bindings
#exclude = ["Bad"]
# A prefix to add before the name of every item
#prefix = "CAPI_"
# Types of items that we'll generate.
item_types = ["constants", "globals", "enums", "structs", "unions", "typedefs", "opaque", "functions"]
# Table of name conversions to apply to item names
[export.rename]
#"Struct" = "CAPI_Struct"
[fn]
# An optional prefix to put before every function declaration
#prefix = "string"
# An optional postfix to put after any function declaration
#postfix = "string"
# How to format function arguments
args = "Auto"
# A rule to use to rename function argument names
#rename_args = "[None|GeckoCase|LowerCase|UpperCase|PascalCase|CamelCase|SnakeCase|ScreamingSnakeCase|QualifiedScreamingSnakeCase]"
[struct]
# A rule to use to rename field names
#rename_fields = "[None|GeckoCase|LowerCase|UpperCase|PascalCase|CamelCase|SnakeCase|ScreamingSnakeCase|QualifiedScreamingSnakeCase]"
# Whether to derive an operator== for all structs
derive_eq = false
# Whether to derive an operator!= for all structs
derive_neq = false
# Whether to derive an operator< for all structs
derive_lt = false
# Whether to derive an operator<= for all structs
derive_lte = false
# Whether to derive an operator> for all structs
derive_gt = false
# Whether to derive an operator>= for all structs
derive_gte = false
[enum]
# A rule to use to rename enum variants
#rename_variants = "[None|GeckoCase|LowerCase|UpperCase|PascalCase|CamelCase|SnakeCase|ScreamingSnakeCase|QualifiedScreamingSnakeCase]"