Struct sqruff_lib::core::templaters::base::TemplatedFileInner
source · pub struct TemplatedFileInner {
pub source_str: String,
pub templated_str: Option<String>,
pub sliced_file: Vec<TemplatedFileSlice>,
/* private fields */
}
Fields§
§source_str: String
§templated_str: Option<String>
§sliced_file: Vec<TemplatedFileSlice>
Implementations§
source§impl TemplatedFileInner
impl TemplatedFileInner
sourcepub 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<TemplatedFileInner, SQLFluffSkipFile>
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<TemplatedFileInner, SQLFluffSkipFile>
Initialise the TemplatedFile. If no templated_str is provided then we assume that the file is NOT templated and that the templated view is the same as the source view.
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 from_string(raw: SmolStr) -> TemplatedFile
pub fn from_string(raw: SmolStr) -> TemplatedFile
Create TemplatedFile from a string.
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 TemplatedFileInner
impl Clone for TemplatedFileInner
source§fn clone(&self) -> TemplatedFileInner
fn clone(&self) -> TemplatedFileInner
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 TemplatedFileInner
impl Debug for TemplatedFileInner
source§impl Hash for TemplatedFileInner
impl Hash for TemplatedFileInner
source§impl PartialEq for TemplatedFileInner
impl PartialEq for TemplatedFileInner
source§fn eq(&self, other: &TemplatedFileInner) -> bool
fn eq(&self, other: &TemplatedFileInner) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for TemplatedFileInner
impl StructuralPartialEq for TemplatedFileInner
Auto Trait Implementations§
impl Freeze for TemplatedFileInner
impl RefUnwindSafe for TemplatedFileInner
impl Send for TemplatedFileInner
impl Sync for TemplatedFileInner
impl Unpin for TemplatedFileInner
impl UnwindSafe for TemplatedFileInner
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