pub trait CLike { fn to_usize(&self) -> usize; fn from_usize(_: usize) -> Self; }
An interface for casting C-like enum to usize and back. A typically implementation is as below.
#[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) } } }
fn to_usize(&self) -> usize
Converts a C-like enum to a usize
.
fn from_usize(_: usize) -> Self
Converts a usize
to a C-like enum.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/collections/enum_set/trait.CLike.html