Add support for rust::Vec<bool>

This commit is contained in:
David Tolnay 2020-04-30 08:45:54 -07:00
parent 7997d07818
commit f336b3b343
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
2 changed files with 11 additions and 6 deletions

View File

@ -266,7 +266,7 @@ void cxxbridge03$unique_ptr$std$string$drop(
}
// Usize and isize are the same type as one of the below.
#define FOR_EACH_SIZED_PRIMITIVE(MACRO) \
#define FOR_EACH_NUMERIC(MACRO) \
MACRO(u8, uint8_t) \
MACRO(u16, uint16_t) \
MACRO(u32, uint32_t) \
@ -278,18 +278,22 @@ void cxxbridge03$unique_ptr$std$string$drop(
MACRO(f32, float) \
MACRO(f64, double)
#define FOR_EACH_PRIMITIVE(MACRO) \
FOR_EACH_SIZED_PRIMITIVE(MACRO) \
#define FOR_EACH_STD_VECTOR(MACRO) \
FOR_EACH_NUMERIC(MACRO) \
MACRO(usize, size_t) \
MACRO(isize, rust::isize)
#define FOR_EACH_RUST_VEC(MACRO) \
FOR_EACH_NUMERIC(MACRO) \
MACRO(bool, bool)
extern "C" {
FOR_EACH_PRIMITIVE(STD_VECTOR_OPS)
FOR_EACH_SIZED_PRIMITIVE(RUST_VEC_EXTERNS)
FOR_EACH_STD_VECTOR(STD_VECTOR_OPS)
FOR_EACH_RUST_VEC(RUST_VEC_EXTERNS)
} // extern "C"
namespace rust {
inline namespace cxxbridge03 {
FOR_EACH_SIZED_PRIMITIVE(RUST_VEC_OPS)
FOR_EACH_RUST_VEC(RUST_VEC_OPS)
} // namespace cxxbridge03
} // namespace rust

View File

@ -53,6 +53,7 @@ macro_rules! rust_vec_shims_for_primitive {
};
}
rust_vec_shims_for_primitive!(bool);
rust_vec_shims_for_primitive!(u8);
rust_vec_shims_for_primitive!(u16);
rust_vec_shims_for_primitive!(u32);