flexible-locks_derive

Crates.ioflexible-locks_derive
lib.rsflexible-locks_derive
version0.1.0
sourcesrc
created_at2018-04-28 00:57:00.051528
updated_at2018-04-28 00:57:00.051528
descriptionCustom Derive for Flexible Locks
homepage
repositoryhttps://github.com/glandium/flexible-locks
max_upload_size
id62687
size6,429
Mike Hommey (glandium)

documentation

README

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

extern crate flexible_locks;
#[macro_use]
extern crate flexible_locks_derive;
use flexible_locks::{Mutex, RawMutex};

// Pick your choice of raw mutex;
#[cfg(windows)]
use flexible_locks::CRITICAL_SECTION as RawOsMutex;
#[cfg(unix)]
use flexible_locks::pthread_mutex_t as RawOsMutex;

#[derive(MutexProtected)]
struct Data {
    a: usize,
    #[mutex]
    mutex: RawOsMutex,
    b: usize,
}
Commit count: 12

cargo fmt