LangImpl

Trait LangImpl 

Source
pub trait LangImpl: Send + Sync {
Show 21 methods // Required methods fn name(&self) -> &str; fn parse(&self, source: &str) -> Tree; fn resolve_named_node(&self, kind: &str) -> Option<NodeTypeId>; fn resolve_anonymous_node(&self, kind: &str) -> Option<NodeTypeId>; fn resolve_field(&self, name: &str) -> Option<NodeFieldId>; fn all_named_node_kinds(&self) -> Vec<&'static str>; fn all_field_names(&self) -> Vec<&'static str>; fn node_type_name(&self, node_type_id: NodeTypeId) -> Option<&'static str>; fn field_name(&self, field_id: NodeFieldId) -> Option<&'static str>; fn fields_for_node_type( &self, node_type_id: NodeTypeId, ) -> Vec<&'static str>; fn is_supertype(&self, node_type_id: NodeTypeId) -> bool; fn subtypes(&self, supertype: NodeTypeId) -> &[u16]; fn root(&self) -> Option<NodeTypeId>; fn is_extra(&self, node_type_id: NodeTypeId) -> bool; fn has_field( &self, node_type_id: NodeTypeId, node_field_id: NodeFieldId, ) -> bool; fn field_cardinality( &self, node_type_id: NodeTypeId, node_field_id: NodeFieldId, ) -> Option<Cardinality>; fn valid_field_types( &self, node_type_id: NodeTypeId, node_field_id: NodeFieldId, ) -> &[NodeTypeId] ; fn is_valid_field_type( &self, node_type_id: NodeTypeId, node_field_id: NodeFieldId, child: NodeTypeId, ) -> bool; fn children_cardinality( &self, node_type_id: NodeTypeId, ) -> Option<Cardinality>; fn valid_child_types(&self, node_type_id: NodeTypeId) -> &[NodeTypeId] ; fn is_valid_child_type( &self, node_type_id: NodeTypeId, child: NodeTypeId, ) -> bool;
}
Expand description

Trait providing a unified facade for tree-sitter’s Language API combined with our node type constraints.

Required Methods§

Source

fn name(&self) -> &str

Source

fn parse(&self, source: &str) -> Tree

Parse source code into a tree-sitter tree.

Source

fn resolve_named_node(&self, kind: &str) -> Option<NodeTypeId>

Source

fn resolve_anonymous_node(&self, kind: &str) -> Option<NodeTypeId>

Source

fn resolve_field(&self, name: &str) -> Option<NodeFieldId>

Source

fn all_named_node_kinds(&self) -> Vec<&'static str>

Source

fn all_field_names(&self) -> Vec<&'static str>

Source

fn node_type_name(&self, node_type_id: NodeTypeId) -> Option<&'static str>

Source

fn field_name(&self, field_id: NodeFieldId) -> Option<&'static str>

Source

fn fields_for_node_type(&self, node_type_id: NodeTypeId) -> Vec<&'static str>

Source

fn is_supertype(&self, node_type_id: NodeTypeId) -> bool

Source

fn subtypes(&self, supertype: NodeTypeId) -> &[u16]

Source

fn root(&self) -> Option<NodeTypeId>

Source

fn is_extra(&self, node_type_id: NodeTypeId) -> bool

Source

fn has_field( &self, node_type_id: NodeTypeId, node_field_id: NodeFieldId, ) -> bool

Source

fn field_cardinality( &self, node_type_id: NodeTypeId, node_field_id: NodeFieldId, ) -> Option<Cardinality>

Source

fn valid_field_types( &self, node_type_id: NodeTypeId, node_field_id: NodeFieldId, ) -> &[NodeTypeId]

Source

fn is_valid_field_type( &self, node_type_id: NodeTypeId, node_field_id: NodeFieldId, child: NodeTypeId, ) -> bool

Source

fn children_cardinality(&self, node_type_id: NodeTypeId) -> Option<Cardinality>

Source

fn valid_child_types(&self, node_type_id: NodeTypeId) -> &[NodeTypeId]

Source

fn is_valid_child_type( &self, node_type_id: NodeTypeId, child: NodeTypeId, ) -> bool

Implementors§