# Trait collections::enum_set::CLike [−] [src]

    pub trait CLike {
        fn to_usize(&self) -> usize;
        fn from_usize(usize) -> Self;
    }

Unstable (`enumset`)

: matches collection reform specification, waiting for dust to settle

An interface for casting C-like enum to usize and back. A typically implementation is as below.

fn main() { #[repr(usize)] enum Foo { A, B, C } impl CLike for Foo { fn to_usize(&self) -> usize { *self as usize } fn from_usize(v: usize) -> Foo { unsafe { mem::transmute(v) } } } }

    #[repr(usize)]
    enum Foo {
        A, B, C
    }

    impl CLike for Foo {
        fn to_usize(&self) -> usize {
            *self as usize
        }

        fn from_usize(v: usize) -> Foo {
            unsafe { mem::transmute(v) }
        }
    }

## Required Methods

### `fn to_usize(&self) -> usize`

Unstable (`enumset`)

: matches collection reform specification, waiting for dust to settle

Converts a C-like enum to a `usize`.

### `fn from_usize(usize) -> Self`

Unstable (`enumset`)

: matches collection reform specification, waiting for dust to settle

Converts a `usize` to a C-like enum.

## Implementors

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)