Trait enum_set::CLike [] [src]

pub trait CLike {
    fn to_u32(&self) -> u32;
    unsafe fn from_u32(u32) -> Self;
}

An interface for casting C-like enum to u32 and back. A typical implementation can be seen below:

use enum_set::CLike;
use std::mem;

#[derive(Clone, Copy)]
#[repr(u32)]
enum Foo {
    A, B, C
}

impl CLike for Foo {
    fn to_u32(&self) -> u32 {
        *self as u32
    }
    unsafe fn from_u32(v: u32) -> Foo {
        mem::transmute(v)
    }
}

Required Methods

fn to_u32(&self) -> u32

Converts a C-like enum to a u32.

unsafe fn from_u32(u32) -> Self

Converts a u32 to a C-like enum. This method only needs to be safe for possible return values of to_u32 of this trait.

Implementors