pub enum CstNode {
Container(CstContainerNode),
Leaf(CstLeafNode),
}
Expand description
All the different kinds of nodes that can appear in the CST.
Variants§
Container(CstContainerNode)
Leaf(CstLeafNode)
Implementations§
Source§impl CstNode
impl CstNode
Sourcepub fn parent(&self) -> Option<CstContainerNode>
pub fn parent(&self) -> Option<CstContainerNode>
Parent of the node.
Returns None
if this node has become disconnected from
the tree by being removed.
Sourcepub fn ancestors(&self) -> impl Iterator<Item = CstContainerNode>
pub fn ancestors(&self) -> impl Iterator<Item = CstContainerNode>
An iterator of ancestors of this node.
Sourcepub fn child_index(&self) -> usize
pub fn child_index(&self) -> usize
Current child index of the node within the children of the parent node.
Sourcepub fn previous_sibling(&self) -> Option<CstNode>
pub fn previous_sibling(&self) -> Option<CstNode>
Node that comes before this one that shares the same parent.
Sourcepub fn previous_siblings(&self) -> impl Iterator<Item = CstNode>
pub fn previous_siblings(&self) -> impl Iterator<Item = CstNode>
Siblings coming before this node. This does not include cousins.
Sourcepub fn next_sibling(&self) -> Option<CstNode>
pub fn next_sibling(&self) -> Option<CstNode>
Node that comes after this one that shares the same parent.
Sourcepub fn next_siblings(&self) -> impl Iterator<Item = CstNode>
pub fn next_siblings(&self) -> impl Iterator<Item = CstNode>
Siblings coming after this node. This does not include cousins.
Sourcepub fn indent_text(&self) -> Option<String>
pub fn indent_text(&self) -> Option<String>
Returns the indentation text if it can be determined.
Sourcepub fn trailing_comma(&self) -> Option<CstToken>
pub fn trailing_comma(&self) -> Option<CstToken>
Gets the trailing comma token of the node, if it exists.
Sourcepub fn uses_trailing_commas(&self) -> bool
pub fn uses_trailing_commas(&self) -> bool
Infers if the node or appropriate ancestor uses trailing commas.
Sourcepub fn root_node(&self) -> Option<CstRootNode>
pub fn root_node(&self) -> Option<CstRootNode>
Gets the root node.
Returns None
if this node has become disconnected from
the tree by being removed.
Sourcepub fn is_trivia(&self) -> bool
pub fn is_trivia(&self) -> bool
Gets if this node is comments, whitespace, newlines, or a non-literal token (ex. brace, colon).
Sourcepub fn leading_comments_same_line(&self) -> impl Iterator<Item = CstComment>
pub fn leading_comments_same_line(&self) -> impl Iterator<Item = CstComment>
Comments that become before this one on the same line.
Sourcepub fn trailing_comments_same_line(&self) -> impl Iterator<Item = CstComment>
pub fn trailing_comments_same_line(&self) -> impl Iterator<Item = CstComment>
Comments that come after this one on the same line.
Only returns owned trailing comments on the same line and not if owned by the next node.
Sourcepub fn is_newline(&self) -> bool
pub fn is_newline(&self) -> bool
If this node is a newline.
Sourcepub fn is_comment(&self) -> bool
pub fn is_comment(&self) -> bool
If this node is a comment.
Sourcepub fn is_whitespace(&self) -> bool
pub fn is_whitespace(&self) -> bool
If this node is whitespace.
Sourcepub fn token_char(&self) -> Option<char>
pub fn token_char(&self) -> Option<char>
Token char of the node if it’s a token.
Sourcepub fn children_exclude_trivia_and_tokens(&self) -> Vec<CstNode>
pub fn children_exclude_trivia_and_tokens(&self) -> Vec<CstNode>
Children of the current node excluding comments, whitespace, newlines, and tokens.
Sourcepub fn child_at_index(&self, index: usize) -> Option<CstNode>
pub fn child_at_index(&self, index: usize) -> Option<CstNode>
Child at the specified index.
Sourcepub fn element_index(&self) -> Option<usize>
pub fn element_index(&self) -> Option<usize>
Gets the array element index of this node if its parent is an array.
Returns None
when the parent is not an array.
Sourcepub fn as_root_node(&self) -> Option<CstRootNode>
pub fn as_root_node(&self) -> Option<CstRootNode>
Node if it’s the root node.
Sourcepub fn as_object_prop(&self) -> Option<CstObjectProp>
pub fn as_object_prop(&self) -> Option<CstObjectProp>
Node if it’s an object property.
Sourcepub fn as_boolean_lit(&self) -> Option<CstBooleanLit>
pub fn as_boolean_lit(&self) -> Option<CstBooleanLit>
Node if it’s a boolean literal.
Sourcepub fn as_null_keyword(&self) -> Option<CstNullKeyword>
pub fn as_null_keyword(&self) -> Option<CstNullKeyword>
Node if it’s a null keyword.
Sourcepub fn as_number_lit(&self) -> Option<CstNumberLit>
pub fn as_number_lit(&self) -> Option<CstNumberLit>
Node if it’s a number literal.
Sourcepub fn as_string_lit(&self) -> Option<CstStringLit>
pub fn as_string_lit(&self) -> Option<CstStringLit>
Node if it’s a string literal.
Sourcepub fn as_word_lit(&self) -> Option<CstWordLit>
pub fn as_word_lit(&self) -> Option<CstWordLit>
Node if it’s a word literal.
Sourcepub fn as_newline(&self) -> Option<CstNewline>
pub fn as_newline(&self) -> Option<CstNewline>
Node if it’s a newline.
Sourcepub fn as_whitespace(&self) -> Option<CstWhitespace>
pub fn as_whitespace(&self) -> Option<CstWhitespace>
Node if it’s whitespace.
Sourcepub fn as_comment(&self) -> Option<CstComment>
pub fn as_comment(&self) -> Option<CstComment>
Node if it’s a comment.