Manuelle Send/Sync-Implementierung für FFI-Wrapper
Standardmäßig sind Typen, die Raw Pointer enthalten, weder Send noch Sync. Um sie zwischen Threads zu übergeben oder Referenzen threadübergreifend zu teilen, müssen diese Marker-Traits manuell implementiert werden. Dies erfordert einen 'unsafe'-Block, da der Compiler nicht verifizieren kann, ob die Synchronisationslogik oder das Pointer-Management korrekt ist.
struct RawBuffer {ptr: *mut u8,len: usize,}// SAFETY: We ensure that access to the buffer is synchronized// and that the pointer is valid for the duration of its use.unsafe impl Send for RawBuffer {}unsafe impl Sync for RawBuffer {}impl RawBuffer {pub fn as_slice(&self) -> &[u8] {unsafe { std::slice::from_raw_parts(self.ptr, self.len) }}}