#string #derive #utility #parser #convert-string #variant-name #derive-debug

from-str-sequential

为枚举实现类似 FromStr 的特质,匹配第一个兼容的变体

1 个不稳定版本

0.1.0 2022年11月26日

#229解析工具

Download history 3/week @ 2024-03-14 11/week @ 2024-03-28 11/week @ 2024-04-04

每月60 次下载

AGPL-3.0+

15KB

from-str-sequential

crates.io docs.rs

这是一个实用库,实现了一个类似于 FromStr 的简单 FromStrSequential 特质。用于单元和未命名的枚举变体,并尝试按顺序将字符串转换为每个变体(从上到下变体)。对于单元变体,字符串必须是变体名称(不区分大小写)。对于未命名的变体,字符串必须匹配未命名类型的 FromStr 实现。

这个库最初发布是为了允许 clap::Command 使用多种输入格式。

示例

use from_str_sequential::FromStrSequential;

#[derive(Debug, FromStrSequential, PartialEq, Eq)]
enum Foo {
	Bar,
	Baz(usize),
}

assert_eq!(Foo::Bar, Foo::from_str_sequential("bar").unwrap());
assert_eq!(Foo::Bar, Foo::from_str_sequential("BaR").unwrap());
assert_eq!(Foo::Baz(100), Foo::from_str_sequential("100").unwrap());

依赖项

~1.5MB
~34K SLoC