У меня есть общий struct Foo<T>
, который я хочу использовать для FFI.Например, следующее может быть использовано для реализации отображения памяти:
use std::marker::PhantomData;
use memmap::MmapMut;
#[repr(C)]
struct Shared<T> {
foo: MmapMut,
_marker: PhantomData<T>,
}
Я хочу, чтобы это было безопасно для FFI, поэтому я бы хотел, чтобы T
также имелбыть repr(C)
.Проблема в том, что представления не являются чертами в Rust, и поэтому я не вижу простого способа обеспечить это статически, что-то вроде struct Foo<T: ReprC>
было бы неплохо, но, насколько я могу судить, не существует.Можно ли использовать макрос?