123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- # The language to output bindings in
- #
- language = "C"
- # An optional name to use as an include guard
- # default: doesn't emit an include guard
- include_guard = "OCEANIC_H2O_SVC_H"
- # Whether to add a `#pragma once` guard
- # default: doesn't emit a `#pragma once`
- pragma_once = true
- # 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 = "// This file is generated by cbindgen; do not edit it manually!"
- # Whether to include a comment with the version of cbindgen used to generate the file
- # default: false
- include_version = true
- # A list of sys headers to #include (with angle brackets)
- # default: []
- sys_includes = ["stdarg.h", "stdbool.h", "stdint.h"]
- # Whether cbindgen's default C/C++ standard imports should be suppressed. These
- # imports are included by default because our generated headers tend to require
- # them (e.g. for uint32_t). Currently, the generated imports are:
- #
- # * for C: <stdarg.h>, <stdbool.h>, <stdint.h>, <stdlib.h>, <uchar.h>
- #
- # * for C++: <cstdarg>, <cstdint>, <cstdlib>, <new>, <cassert> (depending on config)
- #
- # default: false
- no_includes = true
- # Whether to make a C header C++ compatible.
- # These will wrap generated functions into a `extern "C"` block, e.g.
- #
- # #ifdef __cplusplus
- # extern "C" {
- # #endif // __cplusplus
- #
- # // Generated functions.
- #
- # #ifdef __cplusplus
- # } // extern "C"
- # #endif // __cplusplus
- #
- # If the language is not C this option won't have any effect.
- #
- # default: false
- cpp_compat = true
- # Code Style Options
- # Include doc comments from Rust as documentation
- documentation = false
- # Codegen Options
- [export]
- [export.rename]
- "Record" = "void"
- "u128" = "__int128_t"
- [layout]
- # A string that should come before the name of any type which has been marked
- # as `#[repr(packed)]`. For instance, "__attribute__((packed))" would be a
- # reasonable value if targeting gcc/clang. A more portable solution would
- # involve emitting the name of a macro which you define in a platform-specific
- # way. e.g. "PACKED"
- #
- # default: `#[repr(packed)]` types will be treated as opaque, since it would
- # be unsafe for C callers to use a incorrectly laid-out union.
- packed = "PACKED"
- # A string that should come before the name of any type which has been marked
- # as `#[repr(align(n))]`. This string must be a function-like macro which takes
- # a single argument (the requested alignment, `n`). For instance, a macro
- # `#define`d as `ALIGNED(n)` in `header` which translates to
- # `__attribute__((aligned(n)))` would be a reasonable value if targeting
- # gcc/clang.
- #
- # default: `#[repr(align(n))]` types will be treated as opaque, since it
- # could be unsafe for C callers to use a incorrectly-aligned union.
- aligned_n = "ALIGNED(n)"
- [enum]
- # A rule to use to rename enum variants, and the names of any fields those
- # variants have. This should probably be split up into two separate options, but
- # for now, they're the same! See the documentation for `[struct]rename_fields`
- # for how this applies to fields. Renaming of the variant assumes that the input
- # is the Rust standard PascalCase. In the case of QualifiedScreamingSnakeCase,
- # it also assumed that the enum's name is PascalCase.
- #
- # possible values (that actually do something):
- # * "CamelCase": MyVariant => myVariant
- # * "SnakeCase": MyVariant => my_variant
- # * "ScreamingSnakeCase": MyVariant => MY_VARIANT
- # * "QualifiedScreamingSnakeCase": MyVariant => ENUM_NAME_MY_VARIANT
- # * "LowerCase": MyVariant => myvariant
- # * "UpperCase": MyVariant => MYVARIANT
- # * "None": apply no renaming
- #
- # technically possible values (that shouldn't have a purpose for the variants):
- # * "PascalCase": apply no renaming
- # * "GeckoCase": apply no renaming
- #
- # default: "None"
- rename_variants = "QualifiedScreamingSnakeCase"
- # Whether enum variant names should be prefixed with the name of the enum.
- # default: false
- prefix_with_name = true
- [macro_expansion]
- # Whether bindings should be generated for instances of the bitflags! macro.
- # default: false
- bitflags = true
- # Options for how your Rust library should be parsed
- [parse]
- # Whether to use a new temporary target directory when running `rustc -Zunpretty=expanded`.
- # This may be required for some build processes.
- #
- # default: false
- clean = true
- [parse.expand]
- # A list of crate names that should be run through `cargo expand` before
- # parsing to expand any macros. Note that if a crate is named here, it
- # will always be parsed, even if the blacklist/whitelist says it shouldn't be.
- #
- # default: []
- crates = ["sv-call"]
- # If enabled, use the `--all-features` option when expanding. Ignored when
- # `features` is set. For backwards-compatibility, this is forced on if
- # `expand = ["euclid"]` shorthand is used.
- #
- # default: false
- all_features = false
- # When `all_features` is disabled and this is also disabled, use the
- # `--no-default-features` option when expanding.
- #
- # default: true
- default_features = true
- # 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 = ["call"]
- [ptr]
- # An optional string to decorate all pointers that are
- # required to be non null. Nullability is inferred from the Rust type: `&T`,
- # `&mut T` and `NonNull<T>` all require a valid pointer value.
- non_null_attribute = "_Nonnull"
|