Trait sqruff_lib::core::parser::matchable::Matchable

source ·
pub trait Matchable:
    Any
    + Debug
    + DynEq
    + AsAnyMut
    + Send
    + Sync
    + DynClone {
    // Provided methods
    fn mk_from_segments(&self, segments: Vec<ErasedSegment>) -> ErasedSegment { ... }
    fn get_type(&self) -> SyntaxKind { ... }
    fn match_grammar(&self) -> Option<Arc<dyn Matchable>> { ... }
    fn hack_eq(&self, rhs: &Arc<dyn Matchable>) -> bool { ... }
    fn is_optional(&self) -> bool { ... }
    fn simple(
        &self,
        parse_context: &ParseContext<'_>,
        crumbs: Option<Vec<&str>>,
    ) -> Option<(AHashSet<String>, SyntaxSet)> { ... }
    fn match_segments(
        &self,
        _segments: &[ErasedSegment],
        _idx: u32,
        _parse_context: &mut ParseContext<'_>,
    ) -> Result<MatchResult, SQLParseError> { ... }
    fn cache_key(&self) -> MatchableCacheKey { ... }
    fn copy(
        &self,
        _insert: Option<Vec<Arc<dyn Matchable>>>,
        _at: Option<usize>,
        _before: Option<Arc<dyn Matchable>>,
        _remove: Option<Vec<Arc<dyn Matchable>>>,
        _terminators: Vec<Arc<dyn Matchable>>,
        _replace_terminators: bool,
    ) -> Arc<dyn Matchable> { ... }
}

Provided Methods§

source

fn mk_from_segments(&self, segments: Vec<ErasedSegment>) -> ErasedSegment

source

fn get_type(&self) -> SyntaxKind

source

fn match_grammar(&self) -> Option<Arc<dyn Matchable>>

source

fn hack_eq(&self, rhs: &Arc<dyn Matchable>) -> bool

source

fn is_optional(&self) -> bool

source

fn simple( &self, parse_context: &ParseContext<'_>, crumbs: Option<Vec<&str>>, ) -> Option<(AHashSet<String>, SyntaxSet)>

source

fn match_segments( &self, _segments: &[ErasedSegment], _idx: u32, _parse_context: &mut ParseContext<'_>, ) -> Result<MatchResult, SQLParseError>

source

fn cache_key(&self) -> MatchableCacheKey

source

fn copy( &self, _insert: Option<Vec<Arc<dyn Matchable>>>, _at: Option<usize>, _before: Option<Arc<dyn Matchable>>, _remove: Option<Vec<Arc<dyn Matchable>>>, _terminators: Vec<Arc<dyn Matchable>>, _replace_terminators: bool, ) -> Arc<dyn Matchable>

Implementors§