type-conversion - 在 Rust 中创建类型之间的自定义转换的标准方法是什么?

标签 type-conversion rust

如果我定义了一些枚举并想创建一个从字符串到该类型的解析器,有没有比这更好的东西:

impl TheType {
    fn from_str(s: &str) -> TheType { 
        // ...
    }
}

最佳答案

从字符串转换/解析文本的正确方法是实现 FromStr特征。对于问题中的示例,它看起来像这样:

use std::str::FromStr;

enum Failure {
    ReasonOne,
    ReasonTwo,
}

impl FromStr for TheType {
    type Err = Failure;

    fn from_str(s: &str) -> Result<TheType, Self::Err> { 
        unimplemented!()
    }
}

关于type-conversion - 在 Rust 中创建类型之间的自定义转换的标准方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041794/

相关文章:

rust - 从 mio::udp::UdpSocket.recv 接收部分 UDP 数据包

Rust 无法跨等待点发送未包装的结果数据

rust - 有没有办法在 Cargo.toml 中指定一个可执行文件依赖于另一个可执行文件?

java - 从 JSON 创建对象(GSON : java. lang.IllegalStateException:应为 BEGIN_OBJECT 但为 STRING)

c - 二进制转换器不适用于大数

c++ - 从较大的数字类型转换为较小的数字类型时有哪些潜在的陷阱?

rust - 如何使用 Rust 的 BinaryHeap 实现 f64 的最小堆?

javascript - 如何将一串带逗号的数字转换为整数并相加?

go - 将较高类型向下转换为较低类型

string - 我可以在 Rust 中将字符串转换为没有宏的枚举吗?