pub struct Node { /* private fields */ }
Implementations§
Source§impl Node
impl Node
Sourcepub fn id(&self) -> usize
pub fn id(&self) -> usize
Get a numeric id for this node that is unique.
Within a given syntax tree, no two nodes have the same id. However, if a new tree is created based on an older tree, and a node from the old tree is reused in the process, then that node will have the same id in both trees.
Sourcepub fn is_named(&self) -> bool
pub fn is_named(&self) -> bool
Check if this node is named.
Named nodes correspond to named rules in the grammar, whereas anonymous nodes correspond to string literals in the grammar.
Sourcepub fn start_byte(&self) -> usize
pub fn start_byte(&self) -> usize
Check if this node has been edited. Get the byte offsets where this node starts.
Sourcepub fn byte_range(&self) -> Range<usize>
pub fn byte_range(&self) -> Range<usize>
Get the byte range of source code that this node represents.
Sourcepub fn range(&self) -> Range
pub fn range(&self) -> Range
Get the range of source code that this node represents, both in terms of raw bytes and of row/column coordinates.
Sourcepub fn start_position(&self) -> Point
pub fn start_position(&self) -> Point
Get this node’s start position in terms of rows and columns.
Sourcepub fn end_position(&self) -> Point
pub fn end_position(&self) -> Point
Get this node’s end position in terms of rows and columns.
Sourcepub fn child(&self, i: usize) -> Option<Node>
pub fn child(&self, i: usize) -> Option<Node>
Get the node’s child at the given index, where zero represents the first child.
This method is fairly fast, but its cost is technically log(i), so you if you might be iterating over a long list of children, you should use [Node::children] instead.
Sourcepub fn child_count(&self) -> usize
pub fn child_count(&self) -> usize
Get this node’s number of children.
Sourcepub fn named_child(&self, i: usize) -> Option<Node>
pub fn named_child(&self, i: usize) -> Option<Node>
Get this node’s named child at the given index.
See also Node::is_named. This method is fairly fast, but its cost is technically log(i), so you if you might be iterating over a long list of children, you should use [Node::named_children] instead.
Sourcepub fn named_child_count(&self) -> usize
pub fn named_child_count(&self) -> usize
Get this node’s number of named children.
See also Node::is_named.
Sourcepub fn next_sibling(&self) -> Option<Node>
pub fn next_sibling(&self) -> Option<Node>
Get this node’s next sibling.
Sourcepub fn prev_sibling(&self) -> Option<Node>
pub fn prev_sibling(&self) -> Option<Node>
Get this node’s previous sibling.
Sourcepub fn next_named_sibling(&self) -> Option<Node>
pub fn next_named_sibling(&self) -> Option<Node>
Get this node’s next named sibling.
Sourcepub fn prev_named_sibling(&self) -> Option<Node>
pub fn prev_named_sibling(&self) -> Option<Node>
Get this node’s previous named sibling.
pub fn to_sexp(&self, tree_depth: usize) -> String
pub fn get_range(&self) -> Range
pub fn utf8_text<'a>(&self, source: &'a [u8]) -> Result<&'a str, Utf8Error>
pub fn get_text(&self, source: &str) -> String
Sourcepub fn walk(self) -> TreeCursor
pub fn walk(self) -> TreeCursor
Create a new TreeCursor starting from this node.
Trait Implementations§
impl Eq for Node
Auto Trait Implementations§
impl Freeze for Node
impl !RefUnwindSafe for Node
impl !Send for Node
impl !Sync for Node
impl Unpin for Node
impl !UnwindSafe for Node
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§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);