Struct syn::LitStr

source · []
pub struct LitStr { /* private fields */ }
Expand description

A UTF-8 string literal: "foo".

Implementations

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))
        }
    }
}

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)?;

Trait Implementations

Converts to this type from the input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.