summaryrefslogtreecommitdiffstats
path: root/rust/cbindgen.toml
diff options
context:
space:
mode:
Diffstat (limited to 'rust/cbindgen.toml')
-rw-r--r--rust/cbindgen.toml168
1 files changed, 168 insertions, 0 deletions
diff --git a/rust/cbindgen.toml b/rust/cbindgen.toml
new file mode 100644
index 0000000..15c56e2
--- /dev/null
+++ b/rust/cbindgen.toml
@@ -0,0 +1,168 @@
+# The language to output bindings in
+#
+# possible values: "C", "C++"
+#
+# default: "C++"
+language = "C"
+
+
+# Options for wrapping the contents of the header:
+
+# An optional string of text to output at the beginning of the generated file
+# default: doesn't emit anything
+header = """/* Copyright (C) 2019 Open Information Security Foundation
+*
+* You can copy, redistribute or modify this Program under the terms of
+* the GNU General Public License version 2 as published by the Free
+* Software Foundation.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* version 2 along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+* 02110-1301, USA.
+*/"""
+
+# An optional name to use as an include guard
+# default: doesn't emit an include guard
+include_guard = "__RUST_BINDINGS_GEN_H_"
+
+# An optional string of text to output between major sections of the generated
+# file as a warning against manual editing
+#
+# default: doesn't emit anything
+autogen_warning = "/* DO NOT EDIT 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
+# default: false
+include_version = true
+
+# A list of headers to #include (with quotes)
+# default: []
+includes = []
+
+# The desired length of a line to use when formatting lines
+# default: 100
+line_length = 80
+
+# The amount of spaces to indent by
+# default: 2
+tab_width = 4
+
+# How the generated documentation should be commented.
+#
+# possible values:
+# * "c": /* like this */
+# * "c99": // like this
+# * "c++": /// like this
+# * "doxy": like C, but with leading *'s on each line
+# * "auto": "c++" if that's the language, "doxy" otherwise
+#
+# default: "auto"
+documentation_style = "doxy"
+
+
+[export]
+# A list of additional items to always include in the generated bindings if they're
+# found but otherwise don't appear to be used by the public API.
+#
+# default: []
+include = [
+ "StreamSlice",
+ "AppLayerStateData",
+ "AppLayerGetTxIterTuple",
+ "RdpState",
+ "SIPState",
+ "ModbusState",
+ "CMark",
+ "QuicState",
+ "QuicTransaction",
+ "FtpEvent",
+]
+
+# A list of items to not include in the generated bindings
+# default: []
+exclude = [
+ "AppLayerDecoderEvents",
+ "AppLayerParserState",
+ "CLuaState",
+ "DetectEngineState",
+ "Flow",
+ "StreamingBufferConfig",
+ "HttpRangeContainerBlock",
+ "FileContainer",
+ "JsonT",
+ "IKEState",
+ "IKETransaction",
+ "KRB5State",
+ "KRB5Transaction",
+ "NTPState",
+ "NTPTransaction",
+ "SNMPState",
+ "SNMPTransaction",
+ "SuricataContext",
+ "SuricataFileContext",
+ "TFTPState",
+ "TFTPTransaction",
+ "free",
+ "IPPROTO_TCP",
+ "IPPROTO_UDP",
+ "SRepCatGetByShortname",
+]
+
+# Types of items that we'll generate. If empty, then all types of item are emitted.
+#
+# possible items: (TODO: explain these in detail)
+# * "constants":
+# * "globals":
+# * "enums":
+# * "structs":
+# * "unions":
+# * "typedefs":
+# * "opaque":
+# * "functions":
+#
+# default: []
+item_types = ["enums","structs","opaque","functions","constants"]
+
+# Whether applying rules in export.rename prevents export.prefix from applying.
+#
+# e.g. given this toml:
+#
+# [export]
+# prefix = "capi_"
+[export.rename]
+"DNSTransaction" = "RSDNSTransaction"
+"JsonT" = "json_t"
+"CLuaState" = "lua_State"
+
+#
+# You get the following results:
+#
+# renaming_overrides_prefixing = true:
+# "MyType" => "my_cool_type"
+#
+# renaming_overrides_prefixing = false:
+# "MyType => capi_my_cool_type"
+#
+# default: false
+renaming_overrides_prefixing = "true"
+
+[parse]
+# A black list of crate names that are not allowed to be parsed.
+# default: []
+exclude = ["libc"]
+
+[parse.expand]
+# A list of feature names that should be used when running `cargo expand`. This
+# combines with `default_features` like in your `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
+#
+# default: []
+features = ["cbindgen"]