pub struct TraitBody<'db> { /* private fields */ }Implementations§
Source§impl<'db> TraitBody<'db>
impl<'db> TraitBody<'db>
pub const INDEX_LBRACE: usize = 0usize
pub const INDEX_ITEMS: usize = 1usize
pub const INDEX_RBRACE: usize = 2usize
pub fn new_green( db: &'db dyn Database, lbrace: TerminalLBraceGreen<'db>, items: TraitItemListGreen<'db>, rbrace: TerminalRBraceGreen<'db>, ) -> TraitBodyGreen<'db>
Source§impl<'db> TraitBody<'db>
impl<'db> TraitBody<'db>
pub fn lbrace(&self, db: &'db dyn Database) -> TerminalLBrace<'db>
pub fn items(&self, db: &'db dyn Database) -> TraitItemList<'db>
pub fn rbrace(&self, db: &'db dyn Database) -> TerminalRBrace<'db>
Trait Implementations§
Source§impl<'a> BodyItems<'a> for TraitBody<'a>
impl<'a> BodyItems<'a> for TraitBody<'a>
Source§fn iter_items(
&self,
db: &'a dyn Database,
) -> impl Iterator<Item = Self::Item> + 'a
fn iter_items( &self, db: &'a dyn Database, ) -> impl Iterator<Item = Self::Item> + 'a
Returns the items of the body-item as an iterator.
Use with caution, as this includes items that may be filtered out by plugins.
Do note that plugins that directly run on this body-item without going/checking up on the
syntax tree may assume that e.g. out-of-config items were already filtered out.
Don’t use on an item that is not the original plugin’s context, unless you are sure that
while traversing the AST to get to it from the original plugin’s context, you did not go
through another submodule.
Source§impl<'db> TypedSyntaxNode<'db> for TraitBody<'db>
impl<'db> TypedSyntaxNode<'db> for TraitBody<'db>
Source§const OPTIONAL_KIND: Option<SyntaxKind>
const OPTIONAL_KIND: Option<SyntaxKind>
The relevant SyntaxKind. None for enums.
type StablePtr = TraitBodyPtr<'db>
type Green = TraitBodyGreen<'db>
fn missing(db: &'db dyn Database) -> Self::Green
fn from_syntax_node(db: &'db dyn Database, node: SyntaxNode<'db>) -> Self
fn cast(db: &'db dyn Database, node: SyntaxNode<'db>) -> Option<Self>
fn as_syntax_node(&self) -> SyntaxNode<'db>
fn stable_ptr(&self, db: &'db dyn Database) -> Self::StablePtr
impl<'db> Eq for TraitBody<'db>
impl<'db> StructuralPartialEq for TraitBody<'db>
Auto Trait Implementations§
impl<'db> Freeze for TraitBody<'db>
impl<'db> RefUnwindSafe for TraitBody<'db>
impl<'db> Send for TraitBody<'db>
impl<'db> Sync for TraitBody<'db>
impl<'db> Unpin for TraitBody<'db>
impl<'db> UnwindSafe for TraitBody<'db>
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<'db, T> DebugDbUpcast<'db, T> for Twhere
T: ?Sized,
impl<'db, T> DebugDbUpcast<'db, T> for Twhere
T: ?Sized,
fn debug_db_upcast(&'db self) -> &'db T
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
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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