Skip to content

Commit 2d53994

Browse files
committed
feat: Add missing detector crates for Swift, Objective-C, and Kotlin
- Create detector-swift crate for Swift language support - Create detector-objc crate for Objective-C language support - Create detector-kotlin crate for Kotlin language support - Update main Cargo.toml workspace to include new detector crates - Update CLI Cargo.toml to depend on new detector crates - Update CLI main.rs to instantiate new detectors - All tests pass and scanner now supports 10 languages total Languages now supported: - C, C++, Java, Go, Rust, Python, PHP (existing) - Swift, Objective-C, Kotlin (new) This completes the detector infrastructure for all pattern languages.
1 parent 9602e8f commit 2d53994

File tree

10 files changed

+117
-0
lines changed

10 files changed

+117
-0
lines changed

Cargo.lock

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ members = [
88
"crates/detector-rust",
99
"crates/detector-python",
1010
"crates/detector-php",
11+
"crates/detector-swift",
12+
"crates/detector-objc",
13+
"crates/detector-kotlin",
1114
"crates/cli",
1215
]
1316
resolver = "2"

crates/cli/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ aho-corasick = { workspace = true }
1818
crossbeam-channel = { workspace = true }
1919
indicatif = "0.17"
2020
scanner-core = { path = "../scanner-core" }
21+
detector-swift = { path = "../detector-swift" }
22+
detector-objc = { path = "../detector-objc" }
23+
detector-kotlin = { path = "../detector-kotlin" }
2124

2225
[[bin]]
2326
name = "cryptofind"

crates/cli/src/main.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,21 @@ fn main() -> Result<()> {
132132
&[Language::Php],
133133
reg.clone(),
134134
)),
135+
Box::new(PatternDetector::new(
136+
"detector-swift",
137+
&[Language::Swift],
138+
reg.clone(),
139+
)),
140+
Box::new(PatternDetector::new(
141+
"detector-objc",
142+
&[Language::ObjC],
143+
reg.clone(),
144+
)),
145+
Box::new(PatternDetector::new(
146+
"detector-kotlin",
147+
&[Language::Kotlin],
148+
reg.clone(),
149+
)),
135150
];
136151

137152
let mut cfg = Config::default();

crates/detector-kotlin/Cargo.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[package]
2+
name = "detector-kotlin"
3+
version = "0.1.0"
4+
edition = "2021"
5+
license = "Apache-2.0"
6+
7+
[dependencies]
8+
scanner-core = { path = "../scanner-core" }
9+
anyhow = { workspace = true }
10+
11+
[lib]
12+
name = "detector_kotlin"
13+
path = "src/lib.rs"

crates/detector-kotlin/src/lib.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
use scanner_core::{Detector, Language, PatternDetector, PatternRegistry};
2+
use std::sync::Arc;
3+
4+
pub fn make(registry: Arc<PatternRegistry>) -> Box<dyn Detector> {
5+
Box::new(PatternDetector::new(
6+
"detector-kotlin",
7+
&[Language::Kotlin],
8+
registry,
9+
))
10+
}

crates/detector-objc/Cargo.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[package]
2+
name = "detector-objc"
3+
version = "0.1.0"
4+
edition = "2021"
5+
license = "Apache-2.0"
6+
7+
[dependencies]
8+
scanner-core = { path = "../scanner-core" }
9+
anyhow = { workspace = true }
10+
11+
[lib]
12+
name = "detector_objc"
13+
path = "src/lib.rs"

crates/detector-objc/src/lib.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
use scanner_core::{Detector, Language, PatternDetector, PatternRegistry};
2+
use std::sync::Arc;
3+
4+
pub fn make(registry: Arc<PatternRegistry>) -> Box<dyn Detector> {
5+
Box::new(PatternDetector::new(
6+
"detector-objc",
7+
&[Language::ObjC],
8+
registry,
9+
))
10+
}

crates/detector-swift/Cargo.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[package]
2+
name = "detector-swift"
3+
version = "0.1.0"
4+
edition = "2021"
5+
license = "Apache-2.0"
6+
7+
[dependencies]
8+
scanner-core = { path = "../scanner-core" }
9+
anyhow = { workspace = true }
10+
11+
[lib]
12+
name = "detector_swift"
13+
path = "src/lib.rs"

crates/detector-swift/src/lib.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
use scanner_core::{Detector, Language, PatternDetector, PatternRegistry};
2+
use std::sync::Arc;
3+
4+
pub fn make(registry: Arc<PatternRegistry>) -> Box<dyn Detector> {
5+
Box::new(PatternDetector::new(
6+
"detector-swift",
7+
&[Language::Swift],
8+
registry,
9+
))
10+
}

0 commit comments

Comments
 (0)