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> { ... }
}