Custom Derive for Flexible Locks

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.

Examples

```rust extern crate flexible_locks;

[macro_use]

extern crate flexiblelocksderive; use flexible_locks::{Mutex, RawMutex};

// Pick your choice of raw mutex;

[cfg(windows)]

use flexiblelocks::CRITICALSECTION as RawOsMutex;

[cfg(unix)]

use flexiblelocks::pthreadmutex_t as RawOsMutex;

[derive(MutexProtected)]

struct Data { a: usize, #[mutex] mutex: RawOsMutex, b: usize, } ```