pub struct CppTemplateLevel {
pub name: String,
pub head: Option<CppTemplateHead>,
pub arguments: Option<Vec<CppTemplateTerm>>,
}Expand description
One level of template ownership: an enclosing class, or the declaration
itself (always the last level; its name is empty for a callable).
Fields§
§name: StringThe class name as written at this level; empty for a callable.
head: Option<CppTemplateHead>The head that introduces this level’s parameters. None for a
non-template level and for an explicit specialization, whose
template <> introduces nothing.
arguments: Option<Vec<CppTemplateTerm>>The written template arguments that select this level’s class: the
specialization arguments of an in-class declaration’s class, or the
qualifier’s arguments of an out-of-line one, or a function template
explicit specialization’s own arguments. None means the primary
template’s injected arguments when head is present, and a
non-template class otherwise.
Implementations§
Source§impl CppTemplateLevel
impl CppTemplateLevel
Sourcepub fn selects_specialization(&self) -> bool
pub fn selects_specialization(&self) -> bool
Whether the written arguments select a specialization rather than the
primary template: they are not the injected arguments of the head that
introduces this level’s parameters. Box<T*> under template <class T> and Box<int> with no head of its own both do; Box<U> under
template <class U> names the primary.
Trait Implementations§
Source§impl Clone for CppTemplateLevel
impl Clone for CppTemplateLevel
Source§impl Debug for CppTemplateLevel
impl Debug for CppTemplateLevel
impl Eq for CppTemplateLevel
Source§impl PartialEq for CppTemplateLevel
impl PartialEq for CppTemplateLevel
impl StructuralPartialEq for CppTemplateLevel
Auto Trait Implementations§
impl Forget for CppTemplateLevel
impl Freeze for CppTemplateLevel
impl Move for CppTemplateLevel
impl RefUnwindSafe for CppTemplateLevel
impl Send for CppTemplateLevel
impl Sync for CppTemplateLevel
impl Unpin for CppTemplateLevel
impl UnsafeUnpin for CppTemplateLevel
impl UnwindSafe for CppTemplateLevel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more