[][src]Struct syn::LitStr

pub struct LitStr { /* fields omitted */ }

A UTF-8 string literal: "foo".

This type is available if Syn is built with the "derive" or "full" feature.

Methods

impl LitStr
[src]

pub fn new(value: &str, span: Span) -> Self
[src]

pub fn value(&self) -> String
[src]

pub fn parse<T: Parse>(&self) -> Result<T, Error>
[src]

Parse a syntax tree node from the content of this string literal.

All spans in the syntax tree will point to the span of this LitStr.

Example

This code runs with edition 2018
use proc_macro2::Span;
use syn::{Attribute, Error, Ident, Lit, Meta, MetaNameValue, Path, Result};

// Parses the path from an attribute that looks like:
//
//     #[path = "a::b::c"]
//
// or returns `None` if the input is some other attribute.
fn get_path(attr: &Attribute) -> Result<Option<Path>> {
    if !attr.path.is_ident("path") {
        return Ok(None);
    }

    match attr.parse_meta()? {
        Meta::NameValue(MetaNameValue { lit: Lit::Str(lit_str), .. }) => {
            lit_str.parse().map(Some)
        }
        _ => {
            let error_span = attr.bracket_token.span;
            let message = "expected #[path = \"...\"]";
            Err(Error::new(error_span, message))
        }
    }
}

pub fn span(&self) -> Span
[src]

pub fn set_span(&mut self, span: Span)
[src]

Trait Implementations

impl Token for LitStr
[src]

impl Parse for LitStr
[src]

impl From<LitStr> for Lit
[src]

impl Eq for LitStr
[src]

impl PartialEq<LitStr> for LitStr
[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl Clone for LitStr
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for LitStr
[src]

impl Hash for LitStr
[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl ToTokens for LitStr
[src]

fn into_token_stream(self) -> TokenStream
[src]

Convert self directly into a TokenStream object. Read more

Auto Trait Implementations

impl !Send for LitStr

impl !Sync for LitStr

Blanket Implementations

impl<K> Token for K where
    K: CustomKeyword, 
[src]

impl<T> Spanned for T where
    T: ToTokens
[src]

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]