[][src]Enum cpp_demangle::ast::CtorDtorName

pub enum CtorDtorName {
    CompleteConstructor(Option<TypeHandle>),
    BaseConstructor(Option<TypeHandle>),
    CompleteAllocatingConstructor(Option<TypeHandle>),
    MaybeInChargeConstructor(Option<TypeHandle>),
    DeletingDestructor,
    CompleteDestructor,
    BaseDestructor,
    MaybeInChargeDestructor,
}

The <ctor-dtor-name> production.

<ctor-dtor-name> ::= C1  # complete object constructor
                 ::= C2  # base object constructor
                 ::= C3  # complete object allocating constructor
                 ::= D0  # deleting destructor
                 ::= D1  # complete object destructor
                 ::= D2  # base object destructor

GCC also emits a C4 constructor under some conditions when building an optimized binary. GCC's source says:

/* This is the old-style "[unified]" constructor.
   In some cases, we may emit this function and call
   it from the clones in order to share code and save space.  */

Based on the GCC source we'll call this the "maybe in-charge constructor". Similarly, there is a D4 destructor, the "maybe in-charge destructor".

Variants

CompleteConstructor(Option<TypeHandle>)

"C1", the "complete object constructor"

BaseConstructor(Option<TypeHandle>)

"C2", the "base object constructor"

CompleteAllocatingConstructor(Option<TypeHandle>)

"C3", the "complete object allocating constructor"

MaybeInChargeConstructor(Option<TypeHandle>)

"C4", the "maybe in-charge constructor"

DeletingDestructor

"D0", the "deleting destructor"

CompleteDestructor

"D1", the "complete object destructor"

BaseDestructor

"D2", the "base object destructor"

MaybeInChargeDestructor

"D4", the "maybe in-charge destructor"

Trait Implementations

impl Clone for CtorDtorName[src]

impl Debug for CtorDtorName[src]

impl Eq for CtorDtorName[src]

impl PartialEq<CtorDtorName> for CtorDtorName[src]

impl StructuralEq for CtorDtorName[src]

impl StructuralPartialEq for CtorDtorName[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.