This crate provides custom derives for traits describing types that can be wrapped in Flexible Locks types.
For now, Flexible Locks only provides a Mutex
type, so this crate provides
a #[derive(MutexProtected)]
.
The #[mutex]
attribute is used to indicate the data field containing the raw
mutex type.
```rust extern crate flexible_locks;
extern crate flexiblelocksderive; use flexible_locks::{Mutex, RawMutex};
// Pick your choice of raw mutex;
use flexiblelocks::CRITICALSECTION as RawOsMutex;
use flexiblelocks::pthreadmutex_t as RawOsMutex;
struct Data { a: usize, #[mutex] mutex: RawOsMutex, b: usize, } ```