pub fn attribute_iter(&self) -> AstIterator<TagAttribute> {
        if let SyntaxNode::Tag(t) = self {
            return t.attribute_iter();
        }

        AstIterator { buffer: Vec::new() }
    }
/// Create a borrowing iterator over the &[TagAttribute]s of a &[Tag] that iterates over all nested attributes.
/// If this &[SyntaxNode] is not a &[Tag] it will return an empty iterator.
///
/// It visits in a pre-order tree traversal:
/// 1. visits the attribute itself
/// 2. visits all the child attributes
Create a borrowing iterator over the &[TagAttribute]s of a &[Tag] that iterates over all nested attributes.
If this &[SyntaxNode] is not a &[Tag] it will return an empty iterator.

It visits in a pre-order tree traversal:
1. visits the attribute itself
2. visits all the child attributes
Create a borrowing iterator over the & [ TagAttribute ] s of a & [ Tag ] that iterates over all nested attributes . If this & [ SyntaxNode ] is not a & [ Tag ] it will return an empty iterator . It visits in a pre - order tree traversal : 1 . visits the attribute itself 2 . visits all the child attributes
pub fn attribute_iter(&self) -> AstIterator<TagAttribute> {
        if let SyntaxNode::Tag(t) = self {
            return t.attribute_iter();
        }
        AstIterator { buffer: Vec::new() }
    }
pub fn attribute_iter ( & self ) -> AstIterator < TagAttribute > { if let SyntaxNode :: Tag ( t ) = self { return t . attribute_iter ( ) ; } AstIterator { buffer : Vec :: new ( ) } }
Create a borrowing iterator over the &[TagAttribute]s of a &[Tag] that iterates over all nested attributes.
Create a borrowing iterator over the & [ TagAttribute ] s of a & [ Tag ] that iterates over all nested attributes .
&self
&self