Skip to main content

DeclSpecifiers

Struct DeclSpecifiers 

Source
pub struct DeclSpecifiers {
    pub storage: Option<Spanned<StorageClass>>,
    pub thread_local: Option<SourceRange>,
    pub inline: bool,
    pub noreturn: Option<SourceRange>,
    pub alignas: Vec<Alignment>,
    pub attrs: Attributes,
    pub base: Type,
    pub range: SourceRange,
}
Expand description

The declaration specifiers shared by all declarators of one declaration.

Fields§

§storage: Option<Spanned<StorageClass>>

The storage class, if one was written.

§thread_local: Option<SourceRange>

Where _Thread_local, C23’s thread_local or GNU’s __thread was written, if it was.

It is not a StorageClass, because C11 6.7.1p2 lets it appear beside one: static _Thread_local int x; names a thread-local object with internal linkage, and at block scope one of static or extern is required (6.7.1p3).

§inline: bool

Whether inline was written.

§noreturn: Option<SourceRange>

Whether the declaration was marked _Noreturn, [[noreturn]] or __cinrs_noreturn.

§alignas: Vec<Alignment>

The alignment specifiers written among these declaration specifiers, in the order they were written.

C11 6.7.5p6 allows several and makes the strictest of them the one that holds, so they are all kept; __attribute__((aligned(N))) written here asks for the same thing and is folded in, with Alignment::from_attribute saying which spelling each one came from.

§attrs: Attributes

What __attribute__((…)) and [[…]] asked for.

§base: Type

The base type built from the type specifiers and qualifiers.

§range: SourceRange

Where the specifiers were written.

Implementations§

Source§

impl DeclSpecifiers

Source

pub fn is_typedef(&self) -> bool

Whether this declaration introduces typedef names.

Trait Implementations§

Source§

impl Clone for DeclSpecifiers

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for DeclSpecifiers

Source§

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

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

impl PartialEq for DeclSpecifiers

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for DeclSpecifiers

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, 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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.