Skip to content

Commit 4ffa5b2

Browse files
committed
Refactored file.rs to separate concerns
1 parent 1798a7a commit 4ffa5b2

File tree

7 files changed

+184
-125
lines changed

7 files changed

+184
-125
lines changed

src/ast.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,35 @@ use sqlparser::{
1010
parser::{Parser, ParserError},
1111
};
1212

13-
use crate::files::{SqlFile, SqlFileSet};
13+
use crate::source::SqlSource;
1414

1515
/// A single SQL file plus all [`Statement`].
1616
#[derive(Debug)]
1717
pub struct ParsedSqlFile {
18-
file: SqlFile,
18+
file: SqlSource,
1919
statements: Vec<Statement>,
2020
}
2121

2222
impl ParsedSqlFile {
23-
/// Parses a [`SqlFile`] into `sqlparser` [`Statement`] nodes.
23+
/// Parses a [`SqlSource`] into `sqlparser` [`Statement`] nodes.
2424
///
2525
/// This is the AST layer used by the `comments` module to attach leading
2626
/// comment spans to statements/columns.
2727
///
2828
/// # Parameters
29-
/// - `file`: the [`SqlFile`] to parse
29+
/// - `file`: the [`SqlSource`] to parse
3030
///
3131
/// # Errors
3232
/// - Returns [`ParserError`] if parsing fails
33-
pub fn parse(file: SqlFile) -> Result<Self, ParserError> {
33+
pub fn parse(file: SqlSource) -> Result<Self, ParserError> {
3434
let dialect = GenericDialect {};
3535
let statements = Parser::parse_sql(&dialect, file.content())?;
3636
Ok(Self { file, statements })
3737
}
3838

39-
/// Getter method for returning the [`SqlFile`]
39+
/// Getter method for returning the [`SqlSource`]
4040
#[must_use]
41-
pub const fn file(&self) -> &SqlFile {
41+
pub const fn file(&self) -> &SqlSource {
4242
&self.file
4343
}
4444

@@ -74,14 +74,14 @@ pub struct ParsedSqlFileSet {
7474
}
7575

7676
impl ParsedSqlFileSet {
77-
/// Method that parses all members in a [`SqlFileSet`]
77+
/// Method that parses a set of all members in a [`SqlSource`]
7878
///
7979
/// # Parameters
80-
/// - `set` the set of [`SqlFileSet`]
80+
/// - `set` the set of [`SqlSource`]
8181
///
8282
/// # Errors
8383
/// - [`ParserError`] is returned for any errors parsing
84-
pub fn parse_all(set: SqlFileSet) -> Result<Self, ParserError> {
84+
pub fn parse_all(set: Vec<SqlSource>) -> Result<Self, ParserError> {
8585
let files = set.into_iter().map(ParsedSqlFile::parse).collect::<Result<Vec<_>, _>>()?;
8686

8787
Ok(Self { files })
@@ -99,7 +99,7 @@ mod tests {
9999
use std::{env, fs};
100100

101101
use super::*;
102-
use crate::files::{SqlFile, SqlFileSet};
102+
use crate::source::SqlSource;
103103

104104
#[test]
105105
fn parsed_sql_file_parses_single_statement() -> Result<(), Box<dyn std::error::Error>> {
@@ -109,7 +109,7 @@ mod tests {
109109
let file_path = base.join("one.sql");
110110
let sql = "CREATE TABLE users (id INTEGER PRIMARY KEY);";
111111
fs::write(&file_path, sql)?;
112-
let sql_file = SqlFile::new(&file_path)?;
112+
let sql_file = SqlSource::from_path(&file_path)?;
113113
let parsed = ParsedSqlFile::parse(sql_file)?;
114114
assert_eq!(parsed.path(), Some(file_path.as_path()));
115115
assert_eq!(parsed.content(), sql);
@@ -131,7 +131,7 @@ mod tests {
131131
let sql2 = "CREATE TABLE posts (id INTEGER PRIMARY KEY);";
132132
fs::write(&file1, sql1)?;
133133
fs::write(&file2, sql2)?;
134-
let set = SqlFileSet::new(&base, &[])?;
134+
let set = SqlSource::sql_sources(&base, &[])?;
135135
let parsed_set = ParsedSqlFileSet::parse_all(set)?;
136136
let existing_files = parsed_set.files();
137137
assert_eq!(existing_files.len(), 2);

src/comments.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ mod tests {
490490

491491
#[test]
492492
fn parse_comments() -> Result<(), Box<dyn std::error::Error>> {
493-
use crate::{ast::ParsedSqlFileSet, comments::Comments, files::SqlFileSet};
493+
use crate::{ast::ParsedSqlFileSet, comments::Comments, source::SqlSource};
494494
let base = env::temp_dir().join("all_sql_files");
495495
let _ = fs::remove_dir_all(&base);
496496
fs::create_dir_all(&base)?;
@@ -506,7 +506,7 @@ mod tests {
506506
let file4 = base.join("without_comments.sql");
507507
fs::File::create(&file4)?;
508508
fs::write(&file4, no_comments_sql())?;
509-
let set = SqlFileSet::new(&base, &[])?;
509+
let set = SqlSource::sql_sources(&base, &[])?;
510510
let parsed_set = ParsedSqlFileSet::parse_all(set)?;
511511

512512
for file in parsed_set.files() {
@@ -726,14 +726,14 @@ CREATE TABLE posts (
726726

727727
#[test]
728728
fn single_line_comment_spans_are_correct() -> Result<(), Box<dyn std::error::Error>> {
729-
use crate::{ast::ParsedSqlFileSet, files::SqlFileSet};
729+
use crate::{ast::ParsedSqlFileSet, source::SqlSource};
730730
let base = env::temp_dir().join("single_line_spans");
731731
let _ = fs::remove_dir_all(&base);
732732
fs::create_dir_all(&base)?;
733733
let file = base.join("single.sql");
734734
fs::File::create(&file)?;
735735
fs::write(&file, single_line_comments_sql())?;
736-
let set = SqlFileSet::new(&base, &[])?;
736+
let set = SqlSource::sql_sources(&base, &[])?;
737737
let parsed_set = ParsedSqlFileSet::parse_all(set)?;
738738
let file = parsed_set
739739
.files()
@@ -764,14 +764,14 @@ CREATE TABLE posts (
764764

765765
#[test]
766766
fn multiline_comment_spans_are_correct() -> Result<(), Box<dyn std::error::Error>> {
767-
use crate::{ast::ParsedSqlFileSet, files::SqlFileSet};
767+
use crate::{ast::ParsedSqlFileSet, source::SqlSource};
768768
let base = env::temp_dir().join("multi_line_spans");
769769
let _ = fs::remove_dir_all(&base);
770770
fs::create_dir_all(&base)?;
771771
let file = base.join("multi.sql");
772772
fs::File::create(&file)?;
773773
fs::write(&file, multiline_comments_sql())?;
774-
let set = SqlFileSet::new(&base, &[])?;
774+
let set = SqlSource::sql_sources(&base, &[])?;
775775
let parsed_set = ParsedSqlFileSet::parse_all(set)?;
776776
let file = parsed_set
777777
.files()

src/docs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ CREATE TABLE posts (
472472

473473
#[test]
474474
fn generate_docs_files() -> Result<(), Box<dyn std::error::Error>> {
475-
use crate::{ast::ParsedSqlFileSet, comments::Comments, files::SqlFileSet};
475+
use crate::{ast::ParsedSqlFileSet, comments::Comments, source::SqlSource};
476476
let base = env::temp_dir().join("all_sql_files2");
477477
let _ = fs::remove_dir_all(&base);
478478
fs::create_dir_all(&base)?;
@@ -488,7 +488,7 @@ CREATE TABLE posts (
488488
let file4 = base.join("without_comments.sql");
489489
fs::File::create(&file4)?;
490490
fs::write(&file4, no_comments_sql())?;
491-
let set = SqlFileSet::new(&base, &[])?;
491+
let set = SqlSource::sql_sources(&base, &[])?;
492492
let parsed_set = ParsedSqlFileSet::parse_all(set)?;
493493
let expected_values = expect_values();
494494

0 commit comments

Comments
 (0)