treesitter_types/runtime/
from_node.rs1use super::error::ParseError;
2use super::span::Span;
3
4pub trait FromNode<'tree>: Sized {
6 fn from_node(node: tree_sitter::Node<'tree>, src: &'tree [u8]) -> Result<Self, ParseError>;
7}
8
9pub trait LeafNode<'tree>: FromNode<'tree> {
11 fn text(&self) -> &'tree str;
13}
14
15pub trait Spanned {
17 fn span(&self) -> Span;
18
19 fn start(&self) -> tree_sitter::Point {
20 self.span().start
21 }
22
23 fn end(&self) -> tree_sitter::Point {
24 self.span().end
25 }
26}