正在获取组成"std::fmt::Arguments"实例的部分



当我有一个Arguments实例时,是否可以读取组成它的部分?

似乎我唯一能做的就是把它传给format!和朋友。

那么在下面的例子中,是否可以读取"{} hello {}"12

我提出这个问题的原因是,我想实现一个自定义的fernlog格式,并且我想确定是否有任何字符串是有效的JSON,以便它们可以进入一个单独的metaJSON键,用于JSON行日志记录。这样,JSON数据就不需要由最终用户从消息中进行解析。

https://doc.rust-lang.org/std/fmt/struct.Arguments.html

let x: Arguments = format_args!("{} hello {}", 1, 2);
// Can I read back the parts from `x`?

否,Arguments不会以可检查的方式暴露其内部。

即使您可以访问内部(如源代码中所示(,元素也以类型擦除的形式存储,这使得除了通过相关的格式化函数运行它之外,很难使用它。

最新更新