diff --git a/code/Cargo.lock b/code/Cargo.lock index 5bd8eb2..b853603 100644 --- a/code/Cargo.lock +++ b/code/Cargo.lock @@ -191,6 +191,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + [[package]] name = "arboard" version = "3.6.1" @@ -723,11 +729,7 @@ name = "code" version = "0.1.0" dependencies = [ "chrono", -<<<<<<< HEAD -======= - "diesel", "dotenv", ->>>>>>> 5139defcb4ef73ab9355785c6dd0043e987b9247 "eframe", "egui", "egui_dock", @@ -970,17 +972,16 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" -======= name = "dotenv" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" ->>>>>>> 5139defcb4ef73ab9355785c6dd0043e987b9247 + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "downcast-rs" @@ -1566,10 +1567,23 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", ] +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + [[package]] name = "gl_generator" version = "0.14.0" @@ -1908,6 +1922,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "idna" version = "1.1.0" @@ -1951,6 +1971,8 @@ checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", "hashbrown 0.17.1", + "serde", + "serde_core", ] [[package]] @@ -2058,12 +2080,13 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "kurbo" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7564e90fe3c0d5771e1f0bc95322b21baaeaa0d9213fa6a0b61c99f8b17b3bfb" +checksum = "4b60dfc32f652b926df6192e55525b16d186c69d47876c3ead4da5cc9f8450e2" dependencies = [ "arrayvec", "euclid", + "polycool", "smallvec", ] @@ -2076,6 +2099,12 @@ dependencies = [ "spin", ] +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" version = "0.2.186" @@ -2227,6 +2256,17 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "mio" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + [[package]] name = "moxcms" version = "0.8.1" @@ -2872,18 +2912,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.12" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf0d9e68100b3a7989b4901972f265cd542e560a3a8a724e1e20322f4d06ce9" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.12" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990e22f43e84855daf260dded30524ef4a9021cc7541c26540500a50b624389" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", @@ -2973,6 +3013,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" +[[package]] +name = "polycool" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50596ddc09eb5ad5f75cacd40209568e66df71baf86e1499a0e99c4cff12a5a6" +dependencies = [ + "arrayvec", +] + [[package]] name = "portable-atomic" version = "1.13.1" @@ -3012,6 +3061,16 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -3105,6 +3164,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "radium" version = "0.7.0" @@ -3653,6 +3718,16 @@ dependencies = [ "serde", ] +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + [[package]] name = "spin" version = "0.9.8" @@ -3722,6 +3797,8 @@ dependencies = [ "sha2", "smallvec", "thiserror 2.0.18", + "tokio", + "tokio-stream", "tracing", "url", ] @@ -3760,6 +3837,7 @@ dependencies = [ "sqlx-postgres", "sqlx-sqlite", "syn 2.0.117", + "tokio", "url", ] @@ -3947,7 +4025,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.2", "once_cell", "rustix 1.1.4", "windows-sys 0.61.2", @@ -4066,6 +4144,31 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tokio" +version = "1.52.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + [[package]] name = "toml_datetime" version = "1.1.1+spec-1.1.0" @@ -4205,6 +4308,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "url" version = "2.5.8" @@ -4294,7 +4403,16 @@ version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", ] [[package]] @@ -4359,6 +4477,40 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.1", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + [[package]] name = "wayland-backend" version = "0.3.15" @@ -5135,12 +5287,100 @@ dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + [[package]] name = "wit-bindgen" version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.1", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + [[package]] name = "writeable" version = "0.6.3" diff --git a/code/Cargo.toml b/code/Cargo.toml index cac5e81..f0e785b 100644 --- a/code/Cargo.toml +++ b/code/Cargo.toml @@ -7,12 +7,11 @@ edition = "2024" chrono = { version = "0.4.44", features = ["serde"] } dotenv = "0.15.0" eframe = "0.34.2" -chrono = { version = "0.4.44", features = ["serde"] } egui = "0.34.2" egui_dock = "0.19.1" egui_extras = "0.34.2" rust_decimal = {version = "1.42.0", features = ["macros"]} -sqlx = "0.8.6" +sqlx = {version="0.8.6", features = ["runtime-tokio"]} [target.'cfg(target_os="windows")'.dependencies] eframe = {version ="0.34.2",default-features=false, features=["glow"]} diff --git a/code/src/database.rs b/code/src/database.rs index 140bc81..63089b6 100644 --- a/code/src/database.rs +++ b/code/src/database.rs @@ -1,16 +1,37 @@ -use diesel::prelude::*; -use dotenv::dotenv; -use crate::schema::equipment::dsl::*; -use crate::schema::worker::dsl::*; +use sqlx::mysql::MySqlPoolOptions; +use sqlx:mysql::MySqlPool; -pub fn estabilish_connection() -> MysqlConnection{ +use dotenv::dotenv; +// use crate::schema::equipment::dsl::*; +// use crate::schema::worker::dsl::*; + +struct DBOperator{ + connection_string: String, +} +impl DBOperator{ + pub fn new() -> Self{ + dotenv().ok(); + let db_url = dotenv::var("DATABASE_URL").expect("DATABASE_URL установи!"); + Self{connection_string:db_url} + } + pub fn get_all(&self, from: String){ + let pool = MySqlPool::connect(&self.connection_string); + let ret = sqlx::query("SELECT * FROM ?") + .bind(from) + .fetch(pool); + } +} + + +pub async fn estabilish_connection() -> Result<(), sqlx::Error>{ dotenv().ok(); let db_url = dotenv::var("DATABASE_URL").expect("DATABASE_URL установи!"); - MysqlConnection::establish(&db_url) - .unwrap_or_else(|_| panic!("Не коннектится!")) - } + let pool = MySqlPoolOptions::new() + .max_connections(5) + .connect(db_url).await?; + Ok(()) +} pub fn get_positions() -> std::vec::Vec{ - let ret: std::vec::Vec; - ret + todo!() } \ No newline at end of file diff --git a/code/src/main.rs b/code/src/main.rs index 98a06e8..20b5d6e 100644 --- a/code/src/main.rs +++ b/code/src/main.rs @@ -2,7 +2,7 @@ mod app; mod models; mod database; -mod schema; +// mod schema; fn main() -> eframe::Result{ database::estabilish_connection(); let native_opts = eframe::NativeOptions { diff --git a/code/src/models.rs b/code/src/models.rs index eaaeb95..6f001c4 100644 --- a/code/src/models.rs +++ b/code/src/models.rs @@ -1,25 +1,10 @@ -use diesel::{Selectable, deserialize::Queryable}; -use crate::schema::{self, *}; - - -#[derive(Default, Clone, Hash,Queryable,Selectable)] -#[diesel(table_name=schema::position)] +#[derive(Default, Clone, Hash)] pub struct Position{ id: i32, name: String, wage: rust_decimal::Decimal, } -#[derive(Queryable,Selectable)] -#[diesel(table_name=schema::worker)] -pub struct WorkerRow{ - pub id:i32, - pub full_name: String, - pub hire_date: chrono::DateTime, - pub position_id: i32, - pub is_fired:bool -} - #[derive(Default, Clone, Hash)] pub struct Worker{ pub id: i32, @@ -28,29 +13,13 @@ pub struct Worker{ pub position: Position, pub is_fired: bool, } -#[derive(Queryable,Selectable)] -#[diesel(table_name=schema::salary)] -pub struct SalaryRow{ - pub id: i32, - pub worker_id: i32, - pub salary_size: rust_decimal::Decimal, - pub salary_date: chrono::DateTime, -} pub struct Salary{ id: i32, worker: Worker, salary_size: rust_decimal::Decimal, salary_date: chrono::DateTime, } -#[derive(Queryable, Selectable)] -#[diesel(table_name= schema::equipment)] -pub struct EquipmentRow{ - pub id: i32, - pub name: String, - pub inv_number: String, - pub maintenance_date: chrono::DateTime, - pub worker_id: i32, -} + #[derive(Default, Clone, Hash)] pub struct Equipment{ pub id: i32, diff --git a/documents/ссылочки b/documents/ссылочки index 436bd49..1c9b6de 100644 --- a/documents/ссылочки +++ b/documents/ссылочки @@ -1 +1,2 @@ -https://github.com/emilk/egui/blob/main/crates/egui_demo_lib/src/demo/table_demo.rs - зашарить за таблицы \ No newline at end of file +https://github.com/emilk/egui/blob/main/crates/egui_demo_lib/src/demo/table_demo.rs - зашарить за таблицы +https://github.com/launchbadge/sqlx/blob/main/README.md - зашарить за базы данных \ No newline at end of file