112a9d9c8Sopenharmony_ci// bindgen-flags: --with-derive-hash --with-derive-partialeq --with-derive-eq --impl-partialeq --rust-target 1.40
212a9d9c8Sopenharmony_ci/**
312a9d9c8Sopenharmony_ci * We emit a `[u8; 63usize]` padding field for this struct, which cannot derive
412a9d9c8Sopenharmony_ci * Debug/Hash because 63 is over the hard coded limit.
512a9d9c8Sopenharmony_ci */
612a9d9c8Sopenharmony_cistruct NoDebug {
712a9d9c8Sopenharmony_ci    char c;
812a9d9c8Sopenharmony_ci    // padding of 63 bytes
912a9d9c8Sopenharmony_ci} __attribute__((__aligned__(64)));
1012a9d9c8Sopenharmony_ci
1112a9d9c8Sopenharmony_ci/**
1212a9d9c8Sopenharmony_ci * This should derive Debug/Hash/PartialEq/Eq because the padding size is less than the max derive
1312a9d9c8Sopenharmony_ci * Debug/Hash/PartialEq/Eq impl for arrays. However, we conservatively don't derive Debug/Hash because
1412a9d9c8Sopenharmony_ci * we determine Debug derive-ability before we compute padding, which happens at
1512a9d9c8Sopenharmony_ci * codegen.
1612a9d9c8Sopenharmony_ci */
1712a9d9c8Sopenharmony_cistruct ShouldDeriveDebugButDoesNot {
1812a9d9c8Sopenharmony_ci    char c[32];
1912a9d9c8Sopenharmony_ci    char d;
2012a9d9c8Sopenharmony_ci    // padding of 31 bytes
2112a9d9c8Sopenharmony_ci} __attribute__((__aligned__(64)));
22