Skip to content

Commit 23419dd

Browse files
committed
Move Rule into a separate module
Signed-off-by: Patrick Luca Fazzi <patrick91@live.it>
1 parent 3d62300 commit 23419dd

16 files changed

+138
-37
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rust_arkitect"
3-
version = "0.3.1"
3+
version = "0.3.2"
44
authors = ["Patrick Luca Fazzi <patrick91@live.it>"]
55
edition = "2021"
66
description = "rust_arkitect is a lightweight library for defining and validating architectural rules in Rust projects"

src/dependency_parsing.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::rules::rule::RustFile;
1+
use crate::rust_file::RustFile;
22
use std::collections::HashSet;
33
use std::fs;
44
use std::ops::Deref;

src/dsl/architectural_rules.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
use crate::rule::Rule;
12
use crate::rules::may_depend_on::MayDependOnRule;
23
use crate::rules::must_not_depend_on::MustNotDependOnRule;
34
use crate::rules::must_not_depend_on_anything::MustNotDependOnAnythingRule;
4-
use crate::rules::rule::Rule;
55
use std::marker::PhantomData;
66

77
pub struct Begin;
@@ -194,7 +194,7 @@ impl ArchitecturalRules<RulesDefined> {
194194
#[cfg(test)]
195195
mod tests {
196196
use super::*;
197-
use crate::rules::rule::RustFile;
197+
use crate::rust_file::RustFile;
198198
use std::fmt::{Display, Formatter};
199199

200200
#[test]

src/dsl/arkitect.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::dsl::project::Project;
22
use crate::engine::Engine;
3-
use crate::rules::rule::Rule;
3+
use crate::rule::Rule;
44

55
pub struct Arkitect {
66
project: Project,

src/engine.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::rules::rule::{Rule, RustFile};
1+
use crate::rule::Rule;
2+
use crate::rust_file::RustFile;
23
use ansi_term::Color::RGB;
34
use ansi_term::Style;
45
use log::{debug, error, info};

src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
mod dependency_parsing;
22
pub mod dsl;
33
mod engine;
4+
pub mod rule;
45
pub mod rules;
6+
pub mod rust_file;

src/rule.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
use crate::rust_file::RustFile;
2+
use std::fmt::Display;
3+
4+
pub trait Rule: Display {
5+
fn apply(&self, file: &RustFile) -> Result<(), String>;
6+
7+
fn is_applicable(&self, file: &RustFile) -> bool;
8+
}

src/rules/may_depend_on.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use crate::dependency_parsing::get_dependencies_in_ast;
2-
use crate::rules::rule::{Rule, RustFile};
2+
use crate::rule::Rule;
33
use crate::rules::utils::IsChild;
4+
use crate::rust_file::RustFile;
45
use ansi_term::Color::RGB;
56
use ansi_term::Style;
67
use log::debug;
@@ -70,8 +71,8 @@ impl Rule for MayDependOnRule {
7071
}
7172

7273
fn is_applicable(&self, file: &RustFile) -> bool {
73-
let orange = Style::new().bold().fg(ansi_term::Color::RGB(255, 165, 0));
74-
let green = Style::new().bold().fg(ansi_term::Color::RGB(0, 255, 0));
74+
let orange = Style::new().bold().fg(RGB(255, 165, 0));
75+
let green = Style::new().bold().fg(RGB(0, 255, 0));
7576
debug!(
7677
"File {} mapped to module {}",
7778
green.paint(&file.path),
@@ -84,6 +85,7 @@ impl Rule for MayDependOnRule {
8485
#[cfg(test)]
8586
mod tests {
8687
use super::*;
88+
use crate::rust_file::RustFile;
8789

8890
#[test]
8991
fn test_dependency_rule() {

src/rules/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
pub mod may_depend_on;
22
pub mod must_not_depend_on;
33
pub mod must_not_depend_on_anything;
4-
pub mod rule;
5-
mod utils;
4+
pub mod utils;

src/rules/must_not_depend_on.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use crate::dependency_parsing::get_dependencies_in_file;
2-
use crate::rules::rule::{Rule, RustFile};
2+
use crate::rule::Rule;
33
use crate::rules::utils::IsChild;
4+
use crate::rust_file::RustFile;
45
use ansi_term::Color::RGB;
56
use ansi_term::Style;
67
use log::debug;
@@ -84,6 +85,7 @@ impl Rule for MustNotDependOnRule {
8485
#[cfg(test)]
8586
mod tests {
8687
use super::*;
88+
use crate::rust_file::RustFile;
8789

8890
#[test]
8991
fn test_dependency_rule_err() {

0 commit comments

Comments
 (0)