3 个不稳定版本
使用旧 Rust 2015
0.2.0 | 2018 年 1 月 14 日 |
---|---|
0.1.1 | 2017 年 8 月 9 日 |
0.1.0 | 2017 年 7 月 17 日 |
#2503 在 Rust 模式
604 每月下载量
用于 16 个包(通过 mauzi_macros)
31KB
789 行
literalext
警告:此包不再维护。此包中的字面值解析逻辑已移动到
syn 0.12
。要使用
syn
获取类似的行为,请通过调用syn::parse2::<syn::Lit>(ts)
或syn::parse_str::<syn::Lit>(s)
解析syn::Lit
。
此包为 proc-macro
和 proc-macro2
的 Literal
类型提供扩展方法。这些方法提供了一种提取类型值的机制。
API
为 proc_macro2::Literal
、proc_macro::Literal
和 DummyLiteral
类型添加了具有以下方法的 trait 实现,用于提取类型值
pub trait LiteralExt {
/// If the `Literal` is an integer literal, returns its value.
fn parse_int(&self) -> Option<IntLit>;
/// If the `Literal` is a floating point literal, returns its value.
fn parse_float(&self) -> Option<FloatLit>;
/// If the `Literal` is a string literal, returns it's value.
fn parse_string(&self) -> Option<String>;
/// If the `Literal` is a char literal, returns it's value.
fn parse_char(&self) -> Option<char>;
/// If the `Literal` is a byte string literal, returns it's value.
fn parse_bytes(&self) -> Option<Vec<u8>>;
/// If the `Literal` is a byte literal, returns it's value.
fn parse_byte(&self) -> Option<u8>;
/// If the `Literal` is an inner doc comment (`//!` or `/*!`), returns a
/// string with the text of the comment.
fn parse_inner_doc(&self) -> Option<String>;
/// If the `Literal` is an outer doc comment (`///` or `/**`), returns a
/// string with the text of the comment.
fn parse_outer_doc(&self) -> Option<String>;
}
支持的功能
-
i128
:添加对i128
和u128
整数类型的支持。 仅限 nightly -
proc-macro2
默认:在proc_macro2::Literal
上实现LiteralExt
。 -
proc-macro
:在proc_macro::Literal
上实现LiteralExt
。 仅限 nightly -
dummy
:导出一个类型DummyLiteral
,它有一个公开构造函数,实现了LiteralExt
特性。
依赖项
~220KB