diff options
Diffstat (limited to 'libbindgen/src/ir/derive.rs')
-rw-r--r-- | libbindgen/src/ir/derive.rs | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/libbindgen/src/ir/derive.rs b/libbindgen/src/ir/derive.rs deleted file mode 100644 index d13a8117..00000000 --- a/libbindgen/src/ir/derive.rs +++ /dev/null @@ -1,67 +0,0 @@ -//! Traits for determining whether we can derive traits for a thing or not. - -use super::context::BindgenContext; - -/// A trait that encapsulates the logic for whether or not we can derive `Debug` -/// for a given thing. -/// -/// This should ideally be a no-op that just returns `true`, but instead needs -/// to be a recursive method that checks whether all the proper members can -/// derive debug or not, because of the limit rust has on 32 items as max in the -/// array. -pub trait CanDeriveDebug { - /// Implementations can define this type to get access to any extra - /// information required to determine whether they can derive `Debug`. If - /// extra information is unneeded, then this should simply be the unit type. - type Extra; - - /// Return `true` if `Debug` can be derived for this thing, `false` - /// otherwise. - fn can_derive_debug(&self, - ctx: &BindgenContext, - extra: Self::Extra) - -> bool; -} - -/// A trait that encapsulates the logic for whether or not we can derive `Copy` -/// for a given thing. -pub trait CanDeriveCopy<'a> { - /// Implementations can define this type to get access to any extra - /// information required to determine whether they can derive `Copy`. If - /// extra information is unneeded, then this should simply be the unit type. - type Extra; - - /// Return `true` if `Copy` can be derived for this thing, `false` - /// otherwise. - fn can_derive_copy(&'a self, - ctx: &'a BindgenContext, - extra: Self::Extra) - -> bool; - - /// For some reason, deriving copies of an array of a type that is not known - /// to be `Copy` is a compile error. e.g.: - /// - /// ```rust - /// #[derive(Copy, Clone)] - /// struct A<T> { - /// member: T, - /// } - /// ``` - /// - /// is fine, while: - /// - /// ```rust,ignore - /// #[derive(Copy, Clone)] - /// struct A<T> { - /// member: [T; 1], - /// } - /// ``` - /// - /// is an error. - /// - /// That's the whole point of the existence of `can_derive_copy_in_array`. - fn can_derive_copy_in_array(&'a self, - ctx: &'a BindgenContext, - extra: Self::Extra) - -> bool; -} |