Struct sqruff_lib::core::templaters::base::TemplatedFile
source · pub struct TemplatedFile { /* private fields */ }
Expand description
A templated SQL file.
This is the response of a templater
’s .process()
method
and contains both references to the original file and also
the capability to split up that file when lexing.
Implementations§
source§impl TemplatedFile
impl TemplatedFile
pub fn new( source_str: String, f_name: String, input_templated_str: Option<String>, sliced_file: Option<Vec<TemplatedFileSlice>>, input_raw_sliced: Option<Vec<RawFileSlice>> ) -> Result<TemplatedFile, SQLFluffSkipFile>
pub fn from_string(raw: String) -> TemplatedFile
Methods from Deref<Target = TemplatedFileInner>§
sourcepub fn is_templated(&self) -> bool
pub fn is_templated(&self) -> bool
Return true if there’s a templated file.
sourcepub fn get_line_pos_of_char_pos(
&self,
char_pos: usize,
source: bool
) -> (usize, usize)
pub fn get_line_pos_of_char_pos( &self, char_pos: usize, source: bool ) -> (usize, usize)
Get the line number and position of a point in the source file. Args:
- char_pos: The character position in the relevant file.
- source: Are we checking the source file (as opposed to the templated file)
Returns: line_number, line_position
sourcepub fn get_templated_string(&self) -> Option<&str>
pub fn get_templated_string(&self) -> Option<&str>
Get templated string
sourcepub fn source_only_slices(&self) -> Vec<RawFileSlice>
pub fn source_only_slices(&self) -> Vec<RawFileSlice>
Return a list a slices which reference the parts only in the source.
All of these slices should be expected to have zero-length in the templated file.
The results are NECESSARILY sorted.
sourcepub fn find_slice_indices_of_templated_pos(
&self,
templated_pos: usize,
start_idx: Option<usize>,
inclusive: Option<bool>
) -> Result<(usize, usize), ValueError>
pub fn find_slice_indices_of_templated_pos( &self, templated_pos: usize, start_idx: Option<usize>, inclusive: Option<bool> ) -> Result<(usize, usize), ValueError>
Find a subset of the sliced file which touch this point.
The last_idx is exclusive, as the intent is to use this as a slice.
sourcepub fn templated_slice_to_source_slice(
&self,
template_slice: Range<usize>
) -> Result<Range<usize>, ValueError>
pub fn templated_slice_to_source_slice( &self, template_slice: Range<usize> ) -> Result<Range<usize>, ValueError>
Convert a template slice to a source slice.
sourcepub fn is_source_slice_literal(&self, source_slice: &Range<usize>) -> bool
pub fn is_source_slice_literal(&self, source_slice: &Range<usize>) -> bool
Work out whether a slice of the source file is a literal or not.
Trait Implementations§
source§impl Clone for TemplatedFile
impl Clone for TemplatedFile
source§fn clone(&self) -> TemplatedFile
fn clone(&self) -> TemplatedFile
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 TemplatedFile
impl Debug for TemplatedFile
source§impl Deref for TemplatedFile
impl Deref for TemplatedFile
source§impl Hash for TemplatedFile
impl Hash for TemplatedFile
source§impl PartialEq for TemplatedFile
impl PartialEq for TemplatedFile
source§fn eq(&self, other: &TemplatedFile) -> bool
fn eq(&self, other: &TemplatedFile) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for TemplatedFile
impl StructuralPartialEq for TemplatedFile
Auto Trait Implementations§
impl Freeze for TemplatedFile
impl RefUnwindSafe for TemplatedFile
impl Send for TemplatedFile
impl Sync for TemplatedFile
impl Unpin for TemplatedFile
impl UnwindSafe for TemplatedFile
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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