pub struct CstArray(/* private fields */);Expand description
Represents an array that may contain elements (ex. [], [1, 2, 3]).
Implementations§
Source§impl CstArray
impl CstArray
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 has_blank_line_before(&self) -> bool
pub fn has_blank_line_before(&self) -> bool
Whether a blank line separates this node, and the comments written above it, from whatever came before them.
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 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>
Gets the child at the specified index.
Source§impl CstArray
impl CstArray
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 append(&self, value: CstInputValue) -> CstNode
pub fn append(&self, value: CstInputValue) -> CstNode
Appends an element to the end of the array.
Returns the appended node.
Sourcepub fn insert(&self, index: usize, value: CstInputValue) -> CstNode
pub fn insert(&self, index: usize, value: CstInputValue) -> CstNode
Inserts an element at the specified index.
Returns the inserted node.
Sourcepub fn sort_elements(&self) -> ElementSort<'_>
pub fn sort_elements(&self) -> ElementSort<'_>
Sorts the elements of the array.
Behaves like CstObject::sort_properties, moving what was written with an element along
with it. Nothing moves until ElementSort::by or ElementSort::by_key says how to
order them.
§Example
use jsonc_parser::ParseOptions;
use jsonc_parser::cst::CstRootNode;
let json_text = r#"[
"b", // written about b
// written about a
"a"
]"#;
let root = CstRootNode::parse(json_text, &ParseOptions::default()).unwrap();
let array = root.array_value().unwrap();
array.sort_elements().by_key(|element| element.to_string());
assert_eq!(root.to_string(), r#"[
// written about a
"a",
"b" // written about b
]"#);Sourcepub fn ensure_multiline(&self)
pub fn ensure_multiline(&self)
Ensures the array spans multiple lines.
Sourcepub fn set_trailing_commas(&self, mode: TrailingCommaMode)
pub fn set_trailing_commas(&self, mode: TrailingCommaMode)
Ensures this array and all its descendants use trailing commas.
Sourcepub fn replace_with(self, replacement: CstInputValue) -> Option<CstNode>
pub fn replace_with(self, replacement: CstInputValue) -> Option<CstNode>
Replaces this node with a new value.
Sourcepub fn to_serde_value(&self) -> Option<Value>
pub fn to_serde_value(&self) -> Option<Value>
Converts a CST array to a serde_json::Value.