Skip to main content

LitStr

Struct LitStr 

Source
pub struct LitStr { /* private fields */ }
Expand description

A UTF-8 string literal: "foo".

Implementations§

Source§

impl LitStr

Source

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

Source

pub fn value(&self) -> String

Source

pub fn parse<T: Parse>(&self) -> Result<T>

Available 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 syn::{Attribute, Error, Expr, Lit, Meta, 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);
    }

    if let Meta::NameValue(meta) = &attr.meta {
        if let Expr::Lit(expr) = &meta.value {
            if let Lit::Str(lit_str) = &expr.lit {
                return lit_str.parse().map(Some);
            }
        }
    }

    let message = "expected #[path = \"...\"]";
    Err(Error::new_spanned(attr, message))
}
Source

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

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

pub fn span(&self) -> Span

Source

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

Source

pub fn suffix(&self) -> &str

Source

pub fn token(&self) -> Literal

Trait Implementations§

Source§

impl Clone for LitStr

Available on crate feature clone-impls only.
Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl From<LitStr> for Lit

Source§

fn from(e: LitStr) -> Lit

Converts to this type from the input type.
Source§

impl Parse for LitStr

Available on crate feature parsing only.
Source§

fn parse(input: ParseStream<'_>) -> Result<Self>

Source§

impl ToTokens for LitStr

Available on crate feature printing only.
Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Write self to the given TokenStream. Read more
Source§

fn to_token_stream(&self) -> TokenStream

Convert self directly into a TokenStream object. Read more
Source§

fn into_token_stream(self) -> TokenStream
where Self: Sized,

Convert self directly into a TokenStream object. Read more
Source§

impl Token for LitStr

Available on crate feature parsing only.
Source§

fn peek(cursor: Cursor<'_>) -> bool

Source§

fn display() -> &'static str

Auto Trait Implementations§

§

impl Freeze for LitStr

§

impl RefUnwindSafe for LitStr

§

impl !Send for LitStr

§

impl !Sync for LitStr

§

impl Unpin for LitStr

§

impl UnwindSafe for LitStr

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> RepToTokensExt for T
where T: ToTokens + ?Sized,

Source§

fn next(&self) -> Option<&Self>

Pretend to be an iterator for the purposes of quote_into_iter. This allows repeated calls to quote_into_iter to continue correctly returning DoesNotHaveIter.
Source§

fn quote_into_iter(&self) -> (&Self, ThereIsNoIteratorInRepetition)

Source§

impl<T> SizedTypeProperties for T

Source§

#[doc(hidden)]
const SIZE: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const ALIGN: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const IS_ZST: bool = _

🔬This is a nightly-only experimental API. (sized_type_properties)
true if this type requires no storage. false if its size is greater than zero. Read more
Source§

#[doc(hidden)]
const LAYOUT: Layout = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const MAX_SLICE_LEN: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
The largest safe length for a [Self]. Read more
Source§

impl<T> Spanned for T
where T: Spanned + ?Sized,

Source§

fn span(&self) -> Span

Available on crate features parsing and printing only.
Returns a Span covering the complete contents of this syntax tree node, or Span::call_site() if this node is empty.
Source§

impl<T> Spanned for T
where T: ToTokens + ?Sized,

Source§

fn __span(&self) -> Span

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.