litenum

Crates.iolitenum
lib.rslitenum
version1.1.1
sourcesrc
created_at2023-08-08 18:55:33.552723
updated_at2024-08-16 18:09:33.113012
descriptionminimal convertion utilities between literal and enum
homepagehttps://crates.io/crates/litenum
repositoryhttps://github.com/kana-rus/litenum
max_upload_size
id939427
size11,070
(kanarus)

documentation

https://docs.rs/litenum

README

litenum

litenum is the minimal utility for conversion between literal and enum !

Features

  • minimal inplementation
  • no std, no alloc

How to use

to literal

#[litenum::to]
enum AnkerTarget {
    _blank,
    _self,
    _top,
    _parent,
}

fn main() {
    assert_eq!(
        AnkerTarget::_blank.lit(),
        "_blank",
    )
}

from literal

#[litenum::from]
#[derive(Debug, PartialEq)]
enum AnkerTarget {
    _blank,
    _self,
    _top,
    _parent,
}

fn main() {
    assert_eq!(
        AnkerTarget::from_lit("_blank"),
        Some(AnkerTarget::_blank),
    )
}

impl both at once

#[litenum::ium] // same as
                // `#[litenum::to] #[litenum::from]`
#[derive(Debug, PartialEq)]
enum AnkerTarget {
    _blank,
    _self,
    _top,
    _parent,
}

fn main() {
    assert_eq!(
        AnkerTarget::_blank.lit(),
        "_blank",
    );

    assert_eq!(
        AnkerTarget::from_lit("_blank"),
        Some(AnkerTarget::_blank),
    );
}
Commit count: 10

cargo fmt