literalext

Build Status

WARNING: This crate is no longer maintained. The literal parsing logic in this crate has been moved into [syn 0.12].

To get similar behaviour with syn, parse a [syn::Lit] by calling [syn::parse2::<syn::Lit>(ts)] or [syn::parse_str::<syn::Lit>(s)].

This crate provides extension methods to proc-macro, and proc-macro2's Literal types. These methods provide a mechanism for extracting the value of the type.

API

Adds a trait with implementations for the types proc_macro2::Literal, proc_macro::Literal, and DummyLiteral with the following methods for extracting the value of the type:

``rust pub trait LiteralExt { /// If theLiteral` is an integer literal, returns its value. fn parse_int(&self) -> Option;

/// 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>;

} ```

Supported Features