Struct sqruff_lib::core::parser::grammar::noncode::NonCodeMatcher
source · pub struct NonCodeMatcher;
Trait Implementations§
source§impl Clone for NonCodeMatcher
impl Clone for NonCodeMatcher
source§fn clone(&self) -> NonCodeMatcher
fn clone(&self) -> NonCodeMatcher
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for NonCodeMatcher
impl Debug for NonCodeMatcher
source§impl Hash for NonCodeMatcher
impl Hash for NonCodeMatcher
source§impl Matchable for NonCodeMatcher
impl Matchable for NonCodeMatcher
fn is_optional(&self) -> bool
fn simple( &self, _parse_context: &ParseContext<'_>, _crumbs: Option<Vec<&str>> ) -> Option<(AHashSet<String>, AHashSet<String>)>
fn match_segments( &self, segments: &[ErasedSegment], _parse_context: &mut ParseContext<'_> ) -> Result<MatchResult, SQLParseError>
fn cache_key(&self) -> Option<Uuid>
fn mk_from_segments(&self, segments: Vec<ErasedSegment>) -> ErasedSegment
fn hack_eq(&self, rhs: &Arc<dyn Matchable>) -> bool
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>
source§impl PartialEq for NonCodeMatcher
impl PartialEq for NonCodeMatcher
source§fn eq(&self, other: &NonCodeMatcher) -> bool
fn eq(&self, other: &NonCodeMatcher) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl Segment for NonCodeMatcher
impl Segment for NonCodeMatcher
fn new(&self, _segments: Vec<ErasedSegment>) -> ErasedSegment
fn reference(&self) -> Node<ObjectReferenceSegment>
fn type_name(&self) -> &'static str
fn as_object_reference(&self) -> Node<ObjectReferenceSegment>
fn get_start_loc(&self) -> (usize, usize)
fn get_end_loc(&self) -> (usize, usize)
fn to_serialised( &self, code_only: bool, show_raw: bool, include_meta: bool ) -> TupleSerialisedSegment
fn select_children( &self, start_seg: Option<&ErasedSegment>, stop_seg: Option<&ErasedSegment>, select_if: Option<fn(_: &ErasedSegment) -> bool>, loop_while: Option<fn(_: &ErasedSegment) -> bool> ) -> Vec<ErasedSegment>
fn is_templated(&self) -> bool
fn iter_segments( &self, expanding: Option<&[&str]>, pass_through: bool ) -> Vec<ErasedSegment>
fn recursive_crawl_all(&self, reverse: bool) -> Vec<ErasedSegment>
fn recursive_crawl( &self, seg_types: &[&str], recurse_into: bool, no_recursive_seg_type: Option<&str>, allow_self: bool ) -> Vec<ErasedSegment>
fn code_indices(&self) -> Vec<usize>
fn get_parent(&self) -> Option<ErasedSegment>
fn child(&self, seg_types: &[&str]) -> Option<ErasedSegment>
fn children(&self, seg_types: &[&str]) -> Vec<ErasedSegment>
fn iter_patches(&self, templated_file: &TemplatedFile) -> Vec<FixPatch>
fn descendant_type_set(&self) -> AHashSet<&'static str>
fn match_grammar(&self) -> Option<Arc<dyn Matchable>>
fn get_raw(&self) -> Option<String>
fn get_raw_upper(&self) -> Option<String>
fn first_non_whitespace_segment_raw_upper(&self) -> Option<String>
fn get_type(&self) -> &'static str
fn is_type(&self, type_: &str) -> bool
fn is_code(&self) -> bool
fn is_comment(&self) -> bool
fn is_whitespace(&self) -> bool
fn is_meta(&self) -> bool
fn get_default_raw(&self) -> Option<&'static str>
fn get_position_marker(&self) -> Option<PositionMarker>
fn set_position_marker(&mut self, position_marker: Option<PositionMarker>)
fn segments(&self) -> &[ErasedSegment]
fn gather_segments(&self) -> Vec<ErasedSegment>
source§fn get_matched_length(&self) -> usize
fn get_matched_length(&self) -> usize
Return the length of the segment in characters.
source§fn get_can_start_end_non_code(&self) -> bool
fn get_can_start_end_non_code(&self) -> bool
Are we able to have non-code at the start or end?
source§fn get_allow_empty(&self) -> bool
fn get_allow_empty(&self) -> bool
Can we allow it to be empty? Usually used in combination with the
can_start_end_non_code.
source§fn get_file_path(&self) -> Option<String>
fn get_file_path(&self) -> Option<String>
get_file_path returns the file path of the segment if it is a file
segment.
source§fn get_raw_segments(&self) -> Vec<ErasedSegment>
fn get_raw_segments(&self) -> Vec<ErasedSegment>
Iterate raw segments, mostly for searching. Read more
source§fn iter_source_fix_patches(
&self,
templated_file: &TemplatedFile
) -> Vec<FixPatch>
fn iter_source_fix_patches( &self, templated_file: &TemplatedFile ) -> Vec<FixPatch>
Yield any source patches as fixes now. Read more
fn get_uuid(&self) -> Option<Uuid>
source§fn get_source_fixes(&self) -> Vec<SourceFix>
fn get_source_fixes(&self) -> Vec<SourceFix>
Return any source fixes as list.
source§fn edit(
&self,
raw: Option<String>,
source_fixes: Option<Vec<SourceFix>>
) -> ErasedSegment
fn edit( &self, raw: Option<String>, source_fixes: Option<Vec<SourceFix>> ) -> ErasedSegment
Stub.
source§fn compute_anchor_edit_info(
&self,
fixes: &Vec<LintFix>
) -> AHashMap<Uuid, AnchorEditInfo>
fn compute_anchor_edit_info( &self, fixes: &Vec<LintFix> ) -> AHashMap<Uuid, AnchorEditInfo>
Group and count fixes by anchor, return dictionary.
fn instance_types(&self) -> AHashSet<&'static str>
fn combined_types(&self) -> AHashSet<&'static str>
fn class_types(&self) -> AHashSet<&'static str>
fn apply_fixes( &self, dialect: &Dialect, fixes: AHashMap<Uuid, AnchorEditInfo> ) -> (ErasedSegment, Vec<ErasedSegment>, Vec<ErasedSegment>, bool)
impl StructuralPartialEq for NonCodeMatcher
Auto Trait Implementations§
impl Freeze for NonCodeMatcher
impl RefUnwindSafe for NonCodeMatcher
impl Send for NonCodeMatcher
impl Sync for NonCodeMatcher
impl Unpin for NonCodeMatcher
impl UnwindSafe for NonCodeMatcher
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneSegment for Twhere
T: Segment,
impl<T> CloneSegment for Twhere
T: Segment,
fn clone_box(&self) -> ErasedSegment
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more