Struct syn_solidity::UnicodeStr

source ·
pub struct UnicodeStr {
    pub unicode_token: unicode,
    pub value: LitStr,
}
Expand description

A unicode string.

Fields§

§unicode_token: unicode

The prefix of the string.

§value: LitStr

The string literal.

Methods from Deref<Target = LitStr>§

source

pub fn value(&self) -> String

source

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

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>(&self, parser: F) -> Result<<F as Parser>::Output, Error>
where F: Parser,

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 UnicodeStr

source§

fn clone(&self) -> UnicodeStr

Returns a copy 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 Debug for UnicodeStr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for UnicodeStr

source§

type Target = LitStr

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl DerefMut for UnicodeStr

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl Parse for UnicodeStr

source§

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

source§

impl Spanned for UnicodeStr

source§

fn span(&self) -> Span

Returns a Span covering the complete contents of this syntax tree node, or Span::call_site() if this node is empty.
source§

fn set_span(&mut self, span: Span)

Sets the span of this syntax tree node if it is not empty.
source§

fn with_span(self, span: Span) -> Self
where Self: Sized,

Sets the span of this owned syntax tree node if it is not empty.

Auto Trait Implementations§

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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> 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.