Trait ast_grep_core::source::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.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Content for String

§

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§