[][src]Struct syn::LitStr

pub struct LitStr { /* fields omitted */ }

A UTF-8 string literal: "foo".

Implementations

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>[src]

This is supported on crate feature parsing only.

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

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 message = "expected #[path = \"...\"]";
            Err(Error::new_spanned(attr, message))
        }
    }
}

pub fn parse_with<F: Parser>(&self, parser: F) -> Result<F::Output>[src]

This is supported on crate feature parsing only.

Invoke parser on the content of this string literal.

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

Example

let lit_str: LitStr = /* ... */;

// Parse a string literal like "a::b::c" into a Path, not allowing
// generic arguments on any of the path segments.
let basic_path = lit_str.parse_with(syn::Path::parse_mod_style)?;

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

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

pub fn suffix(&self) -> &str[src]

Trait Implementations

impl Clone for LitStr[src]

This is supported on crate feature clone-impls only.

impl Debug for LitStr[src]

This is supported on crate feature extra-traits only.

impl Eq for LitStr[src]

impl From<LitStr> for Lit[src]

impl Hash for LitStr[src]

This is supported on crate feature extra-traits only.

impl Parse for LitStr[src]

This is supported on crate feature parsing only.

impl PartialEq<LitStr> for LitStr[src]

This is supported on crate feature extra-traits only.

impl ToTokens for LitStr[src]

This is supported on crate feature printing only.

impl Token for LitStr[src]

Auto Trait Implementations

impl RefUnwindSafe for LitStr

impl !Send for LitStr

impl !Sync for LitStr

impl Unpin for LitStr

impl UnwindSafe for LitStr

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

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

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

type Owned = T

The resulting type after obtaining ownership.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.