From 6435d92f8c074d7dc2c36e1dbe7665878d651745 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Wed, 8 Apr 2026 01:40:26 +0200 Subject: [PATCH] feat: scaffold ug-parser infrastructure crate --- Cargo.toml | 29 +++++++++++++++++++ crates/infrastructure/ug-parser/Cargo.toml | 13 +++++++++ .../infrastructure/ug-parser/src/fetcher.rs | 1 + crates/infrastructure/ug-parser/src/lib.rs | 5 ++++ crates/infrastructure/ug-parser/src/parser.rs | 1 + 5 files changed, 49 insertions(+) create mode 100644 Cargo.toml create mode 100644 crates/infrastructure/ug-parser/Cargo.toml create mode 100644 crates/infrastructure/ug-parser/src/fetcher.rs create mode 100644 crates/infrastructure/ug-parser/src/lib.rs create mode 100644 crates/infrastructure/ug-parser/src/parser.rs diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..e650491 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,29 @@ +[workspace] +members = [ + "crates/api", + "crates/common", + "crates/domain", + "crates/infrastructure/persistence", + "crates/infrastructure/ug-parser", +] +resolver = "2" + +[workspace.dependencies] +anyhow = "1.0.102" +reqwest = "0.13.2" +serde = { version = "1.0.228", features = ["derive"] } +serde_json = "1.0.149" +thiserror = "2.0.18" +tokio = { version = "1.51.0", features = ["full"] } +tracing = "0.1.44" +tracing-subscriber = { version = "0.3.23", features = ["env-filter"] } +uuid = { version = "1.23.0", features = ["v4"] } +rand = "0.10.0" +sqlx = { version = "0.8.6", features = ["runtime-tokio-rustls"] } +async-trait = "0.1.89" +scraper = "0.23" + +[profile.release] +strip = true +codegen-units = 1 +opt-level = 3 diff --git a/crates/infrastructure/ug-parser/Cargo.toml b/crates/infrastructure/ug-parser/Cargo.toml new file mode 100644 index 0000000..c3a7769 --- /dev/null +++ b/crates/infrastructure/ug-parser/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "ug-parser" +version = "0.1.0" +edition = "2024" + +[dependencies] +domain = { path = "../../domain" } +anyhow = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true } +reqwest = { workspace = true } +scraper = { workspace = true } +async-trait = { workspace = true } diff --git a/crates/infrastructure/ug-parser/src/fetcher.rs b/crates/infrastructure/ug-parser/src/fetcher.rs new file mode 100644 index 0000000..a3e51df --- /dev/null +++ b/crates/infrastructure/ug-parser/src/fetcher.rs @@ -0,0 +1 @@ +pub struct UgTabFetcher; diff --git a/crates/infrastructure/ug-parser/src/lib.rs b/crates/infrastructure/ug-parser/src/lib.rs new file mode 100644 index 0000000..6d16424 --- /dev/null +++ b/crates/infrastructure/ug-parser/src/lib.rs @@ -0,0 +1,5 @@ +pub mod fetcher; +pub mod parser; + +pub use fetcher::UgTabFetcher; +pub use parser::UgHtmlParser; diff --git a/crates/infrastructure/ug-parser/src/parser.rs b/crates/infrastructure/ug-parser/src/parser.rs new file mode 100644 index 0000000..878a83b --- /dev/null +++ b/crates/infrastructure/ug-parser/src/parser.rs @@ -0,0 +1 @@ +pub struct UgHtmlParser;