You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust 如何将枚举(enum)的展示输出自动转换为小写格式

方案1:使用strum库(推荐,生产环境常用)

这是Rust生态处理枚举序列化的标准方案,零手动维护成本,新增枚举变体时无需修改任何额外代码。
首先在Cargo.toml中引入依赖:

[dependencies]
strum = { version = "0.25", features = ["derive"] }
strum_macros = "0.25"

然后直接在枚举上添加派生属性即可:

use strum_macros::Display;

#[derive(Debug, Display)]
#[strum(serialize_all = "lowercase")]
pub enum BoxColour {
    Red,
    Blue,
    // 后续新增变体直接在此处添加即可,Display逻辑自动适配
}

实现后可直接调用to_string()方法获取小写字符串,也可直接在write!/format!宏中使用,输出自动为小写格式。

方案2:无第三方依赖的原生实现

如果不想引入外部依赖,可以先将枚举的Debug输出写入临时字符串,转小写后再输出到格式化器:

impl std::fmt::Display for BoxColour {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let debug_name = format!("{:?}", self);
        write!(f, "{}", debug_name.to_lowercase())
    }
}

该方案同样不需要手动维护匹配分支,仅会产生一次临时字符串分配,绝大多数场景下性能足够。

内容的提问来源于stack exchange,提问作者Brian Kessler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:12:01