ast_grep_core::source

Trait Content

Source
pub trait Content: Sized {
    type Underlying: Clone + PartialEq;

    // Required methods
    fn parse_tree_sitter(
        &self,
        parser: &mut Parser,
        tree: Option<&Tree>,
    ) -> Result<Option<Tree>, ParserError>;
    fn get_range(&self, range: Range<usize>) -> &[Self::Underlying];
    fn accept_edit(&mut self, edit: &Edit<Self>) -> InputEdit;
    fn get_text<'a>(&'a self, node: &Node<'_>) -> Cow<'a, str>;
    fn decode_str(src: &str) -> Cow<'_, [Self::Underlying]>;
    fn encode_bytes(bytes: &[Self::Underlying]) -> Cow<'_, str>;
}

Required Associated Types§

Required Methods§

Source

fn parse_tree_sitter( &self, parser: &mut Parser, tree: Option<&Tree>, ) -> Result<Option<Tree>, ParserError>

Source

fn get_range(&self, range: Range<usize>) -> &[Self::Underlying]

Source

fn accept_edit(&mut self, edit: &Edit<Self>) -> InputEdit

Source

fn get_text<'a>(&'a self, node: &Node<'_>) -> Cow<'a, str>

Source

fn decode_str(src: &str) -> Cow<'_, [Self::Underlying]>

Used for string replacement. We need this for indentation and deindentation.

Source

fn encode_bytes(bytes: &[Self::Underlying]) -> Cow<'_, str>

Used for string replacement. We need this for transformation.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Content for String

Source§

type Underlying = u8

Source§

fn parse_tree_sitter( &self, parser: &mut Parser, tree: Option<&Tree>, ) -> Result<Option<Tree>, ParserError>

Source§

fn get_range(&self, range: Range<usize>) -> &[Self::Underlying]

Source§

fn get_text<'a>(&'a self, node: &Node<'_>) -> Cow<'a, str>

Source§

fn accept_edit(&mut self, edit: &Edit<Self>) -> InputEdit

Source§

fn decode_str(src: &str) -> Cow<'_, [Self::Underlying]>

Source§

fn encode_bytes(bytes: &[Self::Underlying]) -> Cow<'_, str>

Implementors§