Struct sqruff_lib::core::templaters::base::TemplatedFile
source · pub struct TemplatedFile {
pub source_str: String,
pub templated_str: Option<String>,
pub sliced_file: Vec<TemplatedFileSlice>,
/* 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.
Fields§
§source_str: String
§templated_str: Option<String>
§sliced_file: Vec<TemplatedFileSlice>
Implementations§
source§impl TemplatedFile
impl TemplatedFile
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<TemplatedFile, 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<TemplatedFile, 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: String) -> TemplatedFile
pub fn from_string(raw: String) -> 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 TemplatedFile
impl Clone for TemplatedFile
source§fn clone(&self) -> TemplatedFile
fn clone(&self) -> TemplatedFile
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for TemplatedFile
impl Debug 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
self
and other
values to be equal, and is used
by ==
.impl Eq for TemplatedFile
impl StructuralPartialEq for TemplatedFile
Auto Trait Implementations§
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
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.