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.
Trait Implementations§
Source§impl From<CstBooleanLit> for CstNode
impl From<CstBooleanLit> for CstNode
Source§fn from(value: CstBooleanLit) -> Self
fn from(value: CstBooleanLit) -> Self
Source§impl From<CstComment> for CstNode
impl From<CstComment> for CstNode
Source§fn from(value: CstComment) -> Self
fn from(value: CstComment) -> Self
Source§impl From<CstContainerNode> for CstNode
impl From<CstContainerNode> for CstNode
Source§fn from(value: CstContainerNode) -> Self
fn from(value: CstContainerNode) -> Self
Source§impl From<CstLeafNode> for CstNode
impl From<CstLeafNode> for CstNode
Source§fn from(value: CstLeafNode) -> Self
fn from(value: CstLeafNode) -> Self
Source§impl From<CstNewline> for CstNode
impl From<CstNewline> for CstNode
Source§fn from(value: CstNewline) -> Self
fn from(value: CstNewline) -> Self
Source§impl From<CstNullKeyword> for CstNode
impl From<CstNullKeyword> for CstNode
Source§fn from(value: CstNullKeyword) -> Self
fn from(value: CstNullKeyword) -> Self
Source§impl From<CstNumberLit> for CstNode
impl From<CstNumberLit> for CstNode
Source§fn from(value: CstNumberLit) -> Self
fn from(value: CstNumberLit) -> Self
Source§impl From<CstObjectProp> for CstNode
impl From<CstObjectProp> for CstNode
Source§fn from(value: CstObjectProp) -> Self
fn from(value: CstObjectProp) -> Self
Source§impl From<CstRootNode> for CstNode
impl From<CstRootNode> for CstNode
Source§fn from(value: CstRootNode) -> Self
fn from(value: CstRootNode) -> Self
Source§impl From<CstStringLit> for CstNode
impl From<CstStringLit> for CstNode
Source§fn from(value: CstStringLit) -> Self
fn from(value: CstStringLit) -> Self
Source§impl From<CstWhitespace> for CstNode
impl From<CstWhitespace> for CstNode
Source§fn from(value: CstWhitespace) -> Self
fn from(value: CstWhitespace) -> Self
Source§impl From<CstWordLit> for CstNode
impl From<CstWordLit> for CstNode
Source§fn from(value: CstWordLit) -> Self
fn from(value: CstWordLit) -> Self
Source§impl From<ObjectPropName> for CstNode
impl From<ObjectPropName> for CstNode
Source§fn from(value: ObjectPropName) -> Self
fn from(value: ObjectPropName) -> Self
Auto Trait Implementations§
impl Freeze for CstNode
impl !RefUnwindSafe for CstNode
impl !Send for CstNode
impl !Sync for CstNode
impl Unpin for CstNode
impl !UnwindSafe for CstNode
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)