小编aco*_*tad的帖子

匹配多种可能的类型?

我对 Rust 非常非常陌生,并且由于我强大的弱类型编程背景,我一直在努力解决它。

下面的代码应将通过 PYO3 从 Python 接收的数据写入 XLSX 工作表中。我只是不知道如何处理最后一个匹配,因为“value”是 PyAny 类型(也就是说,它的方法 extract 可以输出多种类型,例如 String、f32 等,并且我想要根据提取的特定行为类型)。

也许我可以为每个潜在的提取类型链接匹配(如果第一个输出 Err,请尝试下一个),但我怀疑可能有更好的方法。也许我只是用错误的设计来解决这个问题。任何见解都将受到欢迎。

pub trait WriteValue {
    fn write_value(&self, worksheet: &mut Worksheet, row: u32, col: u16, format: Option<&Format>) -> Result<(), XlsxError>;
}

impl WriteValue for String {
    fn write_value(&self, worksheet: &mut Worksheet, row: u32, col: u16, format: Option<&Format>) -> Result<(), XlsxError> {
        worksheet.write_string(row, col, &self, format)
    }
}

impl WriteValue for f32 {
    fn write_value(&self, worksheet: &mut Worksheet, row: u32, col: u16, format: Option<&Format>) -> …
Run Code Online (Sandbox Code Playgroud)

match rust xlsxwriter pyo3

4
推荐指数
1
解决办法
770
查看次数

标签 统计

match ×1

pyo3 ×1

rust ×1

xlsxwriter ×1