#proc-macro #display #input-stream #token-stream #faithful #formatting #output

nightly proc-macro-faithful-display

一个更忠实于输入流的进程宏类型显示实现

2个不稳定版本

0.2.0 2023年12月19日
0.1.0 2018年12月1日

#346 in 进程宏


2 crates 中使用

BSD-3-Clause

11KB
138 代码行

为进程宏类型提供了一个更忠实的 Display 实现

这个crate提供了一个关于输入标记流的忠实显示实现。也就是说,显示格式化输出将包含与Rust标记流输入流相同的空格和换行符。

您可以自由浏览文档以获取更多详细信息。


lib.rs:

一个针对 [proc_macro] 的替代 Display 实现方案,尊重输入布局和格式。

理想情况下,[proc_macro] 类型的 Display 实现不尊重输入的布局。对于大多数常见的Rust用例,这是可以接受的,因为该语言不依赖于空白,并有自己的浮点数、字段访问等语法。然而,对于所有其他用例,您将丢失格式和缩进。另外,一些 EDSLs 可能需要严格使用换行符或带有前导冒号、逗号等符号,而不使用空白。

此crate提供了一个尊重输入格式的 Display 实现,因此可以显示一个 TokenStream,并用比 syn 更神秘的解析器解析它。

目前,此crate高度依赖于 nightly 功能。您还不能在 stable 通道上使用它...

您可以通过在您的 TokenStream 上调用 faithful_display 函数来获得一个忠实的 Display 对象。

在撰写本文时,特质不允许在方法中使用 存在性 impl Trait。这是不幸的,因此该功能是通过函数而不是方法来访问的。

无运行时依赖