diff options
Diffstat (limited to 'src/chooser.rs')
-rw-r--r-- | src/chooser.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/chooser.rs b/src/chooser.rs new file mode 100644 index 00000000..51392d70 --- /dev/null +++ b/src/chooser.rs @@ -0,0 +1,26 @@ +//! A public API for more fine-grained customization of bindgen behavior. + +pub use ir::int::IntKind; +pub use ir::enum_ty::{EnumVariantValue, EnumVariantCustomBehavior}; +use std::fmt; + +/// A trait to allow configuring different kinds of types in different +/// situations. +pub trait TypeChooser: fmt::Debug { + /// The integer kind an integer macro should have, given a name and the + /// value of that macro, or `None` if you want the default to be chosen. + fn int_macro(&self, _name: &str, _value: i64) -> Option<IntKind> { + None + } + + /// This function should return whether, given the a given enum variant + /// name, and value, returns whether this enum variant will forcibly be a + /// constant. + fn enum_variant_behavior(&self, + _enum_name: Option<&str>, + _variant_name: &str, + _variant_value: EnumVariantValue) + -> Option<EnumVariantCustomBehavior> { + None + } +} |