Struct syn::LitStr [−][src]
pub struct LitStr { /* fields omitted */ }
Expand description
A UTF-8 string literal: "foo"
.
Implementations
This is supported on crate feature parsing
only.
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))
}
}
}
This is supported on crate feature parsing
only.
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)?;
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for LitStr
impl UnwindSafe for LitStr
Blanket Implementations
Mutably borrows from an owned value. Read more