| Vulnerabilities | |||||
|---|---|---|---|---|---|
| Version | Suggest | Low | Medium | High | Critical |
| 0.1.14 | 0 | 0 | 0 | 0 | 0 |
| 0.1.13 | 0 | 0 | 0 | 0 | 0 |
| 0.1.12 | 0 | 0 | 0 | 0 | 0 |
| 0.1.11 | 0 | 0 | 0 | 0 | 0 |
| 0.1.10 | 0 | 0 | 0 | 0 | 0 |
| 0.1.9 | 0 | 0 | 0 | 0 | 0 |
| 0.1.8 | 0 | 0 | 0 | 0 | 0 |
| 0.1.7 | 0 | 0 | 0 | 0 | 0 |
| 0.1.6 | 0 | 0 | 0 | 0 | 0 |
| 0.1.5 | 0 | 0 | 0 | 0 | 0 |
| 0.1.4 | 0 | 0 | 0 | 0 | 0 |
| 0.1.3 | 0 | 0 | 0 | 0 | 0 |
| 0.1.2 | 0 | 0 | 0 | 0 | 0 |
| 0.1.1 | 0 | 0 | 0 | 0 | 0 |
| 0.1.0 | 0 | 0 | 0 | 0 | 0 |
0.1.14 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
Apache-2.0 - Apache License 2.0This crate provides a derive macro to generate a function for converting a primitive integer into the corresponding variant of an enum. (This project is no longer maintained.)
The generated function is named n and has the following signature:
impl YourEnum {
pub fn n(value: Repr) -> Option<Self>;
}where Repr is an integer type of the right size as described in more detail
below.
use enumn::N;
#[derive(PartialEq, Debug, N)]
enum Status {
LegendaryTriumph,
QualifiedSuccess,
FortuitousRevival,
IndeterminateStalemate,
RecoverableSetback,
DireMisadventure,
AbjectFailure,
}
fn main() {
let s = Status::n(1);
assert_eq!(s, Some(Status::QualifiedSuccess));
let s = Status::n(9);
assert_eq!(s, None);
}The generated signature depends on whether the enum has a #[repr(..)]
attribute. If a repr is specified, the input to n will be required to be of
that type.
#[derive(enumn::N)]
#[repr(u8)]
enum E {
/* ... */
}
// expands to:
impl E {
pub fn n(value: u8) -> Option<Self> {
/* ... */
}
}On the other hand if no repr is specified then we get a signature that is
generic over a variety of possible types.
impl E {
pub fn n<REPR: Into<i64>>(value: REPR) -> Option<Self> {
/* ... */
}
}The conversion respects explicitly specified enum discriminants. Consider this enum:
#[derive(enumn::N)]
enum Letter {
A = 65,
B = 66,
}Here Letter::n(65) would return Some(Letter::A).