diff --git a/Cargo.lock b/Cargo.lock index 2d0019f..8f28b30 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -29,18 +29,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check 0.9.5", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -137,16 +125,6 @@ version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" -[[package]] -name = "assert-json-diff" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" -dependencies = [ - "serde 1.0.217", - "serde_json", -] - [[package]] name = "async-channel" version = "1.9.0" @@ -293,7 +271,7 @@ dependencies = [ "base64ct", "clap", "cool_asserts", - "serde 1.0.217", + "serde 1.0.218", "sha2", "sqlx", "thiserror 1.0.69", @@ -301,12 +279,6 @@ dependencies = [ "uuid 0.4.0", ] -[[package]] -name = "auto-future" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1e7e457ea78e524f48639f551fd79703ac3f2237f5ecccdf4708f8a75ad373" - [[package]] name = "autocfg" version = "0.1.8" @@ -322,103 +294,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core", - "axum-macros", - "bytes", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.5.2", - "hyper-util", - "itoa", - "matchit", - "memchr", - "mime 0.3.17", - "percent-encoding 2.3.1", - "pin-project-lite", - "rustversion", - "serde 1.0.217", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper 1.0.2", - "tokio", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "http-body-util", - "mime 0.3.17", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.2", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "axum-test" -version = "16.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e3a443d2608936a02a222da7b746eb412fede7225b3030b64fe9be99eab8dc" -dependencies = [ - "anyhow", - "assert-json-diff", - "auto-future", - "axum", - "bytes", - "bytesize", - "cookie 0.18.1", - "http 1.2.0", - "http-body-util", - "hyper 1.5.2", - "hyper-util", - "mime 0.3.17", - "pretty_assertions", - "reserve-port", - "rust-multipart-rfc7578_2", - "serde 1.0.217", - "serde_json", - "serde_urlencoded", - "smallvec", - "tokio", - "tower", - "url 2.5.4", -] - [[package]] name = "az" version = "1.2.1" @@ -522,7 +397,7 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" dependencies = [ - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -577,12 +452,6 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" -[[package]] -name = "bytesize" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" - [[package]] name = "cairo-rs" version = "0.18.5" @@ -659,7 +528,7 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits", - "serde 1.0.217", + "serde 1.0.218", "wasm-bindgen", "windows-targets 0.52.6", ] @@ -673,7 +542,7 @@ dependencies = [ "chrono", "chrono-tz-build", "phf 0.11.3", - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -700,9 +569,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.26" +version = "4.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" dependencies = [ "clap_builder", "clap_derive", @@ -710,9 +579,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" dependencies = [ "anstream", "anstyle", @@ -722,9 +591,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.24" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" +checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -774,7 +643,7 @@ version = "0.1.0" dependencies = [ "config-derive", "cool_asserts", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "thiserror 1.0.69", ] @@ -812,16 +681,6 @@ dependencies = [ "version_check 0.9.5", ] -[[package]] -name = "cookie" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" -dependencies = [ - "time 0.3.37", - "version_check 0.9.5", -] - [[package]] name = "cookie-factory" version = "0.3.3" @@ -958,7 +817,7 @@ dependencies = [ "gio", "glib", "gtk4", - "serde 1.0.217", + "serde 1.0.218", "serde_yml", ] @@ -1004,7 +863,7 @@ dependencies = [ "libadwaita", "memorycache", "reqwest", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "tokio", "unic-langid", @@ -1046,12 +905,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - [[package]] name = "digest" version = "0.10.7" @@ -1072,7 +925,7 @@ checksum = "2517b0555262aeeda0d107a40ecfbbcf185921180ffb4acf316ebe0887467e26" dependencies = [ "generic-array 0.11.2", "num-traits", - "serde 1.0.217", + "serde 1.0.218", "typenum", ] @@ -1084,7 +937,7 @@ checksum = "a0b0a86c5d31c93238ff4b694fa31f3acdf67440770dc314c57d90e433914397" dependencies = [ "generic-array 0.14.7", "num-traits", - "serde 1.0.217", + "serde 1.0.218", "typenum", ] @@ -1111,7 +964,7 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" dependencies = [ - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -1121,7 +974,7 @@ dependencies = [ "chrono", "chrono-tz", "dimensioned 0.7.0", - "serde 1.0.217", + "serde 1.0.218", "serde_derive", "serde_json", "tempfile", @@ -1220,18 +1073,6 @@ dependencies = [ "zune-inflate", ] -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - -[[package]] -name = "fallible-streaming-iterator" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" - [[package]] name = "fastrand" version = "2.3.0" @@ -1267,7 +1108,7 @@ dependencies = [ "bytes", "chrono", "clap", - "cookie 0.17.0", + "cookie", "cool_asserts", "futures-util", "hex-string", @@ -1278,7 +1119,7 @@ dependencies = [ "mime 0.3.17", "mime_guess 2.0.5", "pretty_env_logger", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "sha2", "tempdir", @@ -1440,7 +1281,7 @@ dependencies = [ "chrono-tz", "dimensioned 0.8.0", "emseries", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "tempfile", ] @@ -1762,7 +1603,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" dependencies = [ "heck 0.4.1", - "proc-macro-crate 2.0.2", + "proc-macro-crate 2.0.0", "proc-macro-error", "proc-macro2", "quote", @@ -1810,7 +1651,7 @@ dependencies = [ "glib-build-tools 0.16.3", "gtk4", "libadwaita", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "tokio", ] @@ -1820,7 +1661,7 @@ name = "gm-dash" version = "0.1.0" dependencies = [ "pipewire", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "tokio", "warp", @@ -1983,15 +1824,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", -] - [[package]] name = "hashbrown" version = "0.15.2" @@ -2003,22 +1835,13 @@ dependencies = [ "foldhash", ] -[[package]] -name = "hashlink" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" -dependencies = [ - "hashbrown 0.14.5", -] - [[package]] name = "hashlink" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.15.2", + "hashbrown", ] [[package]] @@ -2154,29 +1977,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.2.0", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "pin-project-lite", -] - [[package]] name = "httparse" version = "1.9.5" @@ -2226,7 +2026,7 @@ dependencies = [ "futures-util", "h2", "http 0.2.12", - "http-body 0.4.6", + "http-body", "httparse", "httpdate", "itoa", @@ -2238,26 +2038,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - [[package]] name = "hyper-tls" version = "0.5.0" @@ -2271,25 +2051,6 @@ dependencies = [ "tokio-native-tls", ] -[[package]] -name = "hyper-util" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "hyper 1.5.2", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", -] - [[package]] name = "iana-time-zone" version = "0.1.61" @@ -2343,6 +2104,7 @@ checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", + "serde 1.0.218", "tinystr", "writeable", "zerovec", @@ -2510,25 +2272,6 @@ dependencies = [ "tiff 0.9.1", ] -[[package]] -name = "include_dir" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" -dependencies = [ - "include_dir_macros", -] - -[[package]] -name = "include_dir_macros" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" -dependencies = [ - "proc-macro2", - "quote", -] - [[package]] name = "indent_write" version = "2.2.0" @@ -2542,7 +2285,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown", ] [[package]] @@ -2655,6 +2398,16 @@ dependencies = [ "log 0.4.25", ] +[[package]] +name = "l10n-db" +version = "0.1.0" +dependencies = [ + "clap", + "icu_locid", + "serde 1.0.218", + "toml", +] + [[package]] name = "language-tags" version = "0.2.2" @@ -2850,12 +2603,6 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "md-5" version = "0.10.6" @@ -2887,7 +2634,7 @@ version = "0.1.0" dependencies = [ "chrono", "futures", - "serde 1.0.217", + "serde 1.0.218", "serde_derive", "tokio", ] @@ -3205,7 +2952,7 @@ dependencies = [ "cool_asserts", "grid", "nary_tree", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "sgf", "thiserror 1.0.69", @@ -3555,16 +3302,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "pretty_assertions" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" -dependencies = [ - "diff", - "yansi", -] - [[package]] name = "pretty_env_logger" version = "0.5.0" @@ -3587,11 +3324,10 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "toml_datetime", "toml_edit 0.20.2", ] @@ -3929,7 +3665,7 @@ dependencies = [ "futures-util", "h2", "http 0.2.12", - "http-body 0.4.6", + "http-body", "hyper 0.14.32", "hyper-tls", "ipnet", @@ -3941,10 +3677,10 @@ dependencies = [ "percent-encoding 2.3.1", "pin-project-lite", "rustls-pemfile", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "serde_urlencoded", - "sync_wrapper 0.1.2", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", @@ -3956,16 +3692,6 @@ dependencies = [ "winreg", ] -[[package]] -name = "reserve-port" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9838134a2bfaa8e1f40738fcc972ac799de6e0e06b5157acb95fc2b05a0ea283" -dependencies = [ - "lazy_static", - "thiserror 1.0.69", -] - [[package]] name = "result-extended" version = "0.1.0" @@ -3993,47 +3719,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rusqlite" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" -dependencies = [ - "bitflags 2.8.0", - "fallible-iterator", - "fallible-streaming-iterator", - "hashlink 0.9.1", - "libsqlite3-sys", - "smallvec", -] - -[[package]] -name = "rusqlite_migration" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923b42e802f7dc20a0a6b5e097ba7c83fe4289da07e49156fecf6af08aa9cd1c" -dependencies = [ - "include_dir", - "log 0.4.25", - "rusqlite", -] - -[[package]] -name = "rust-multipart-rfc7578_2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b748410c0afdef2ebbe3685a6a862e2ee937127cdaae623336a459451c8d57" -dependencies = [ - "bytes", - "futures-core", - "futures-util", - "http 0.2.12", - "mime 0.3.17", - "mime_guess 2.0.5", - "rand 0.8.5", - "thiserror 1.0.69", -] - [[package]] name = "rustc-demangle" version = "0.1.24" @@ -4195,18 +3880,18 @@ checksum = "34b623917345a631dc9608d5194cc206b3fe6c3554cd1c75b937e55e285254af" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", @@ -4222,17 +3907,7 @@ dependencies = [ "itoa", "memchr", "ryu", - "serde 1.0.217", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" -dependencies = [ - "itoa", - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -4241,7 +3916,7 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -4253,7 +3928,7 @@ dependencies = [ "form_urlencoded", "itoa", "ryu", - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -4267,10 +3942,14 @@ dependencies = [ "libyml", "memchr", "ryu", - "serde 1.0.217", + "serde 1.0.218", "version_check 0.9.5", ] +[[package]] +name = "server" +version = "0.1.0" + [[package]] name = "sgf" version = "0.1.0" @@ -4279,7 +3958,7 @@ dependencies = [ "cool_asserts", "nary_tree", "nom", - "serde 1.0.217", + "serde 1.0.218", "thiserror 1.0.69", "typeshare", "uuid 0.8.2", @@ -4380,7 +4059,7 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" dependencies = [ - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -4446,14 +4125,14 @@ dependencies = [ "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.15.2", - "hashlink 0.10.0", + "hashbrown", + "hashlink", "indexmap", "log 0.4.25", "memchr", "once_cell", "percent-encoding 2.3.1", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "sha2", "smallvec", @@ -4490,7 +4169,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "sha2", "sqlx-core", @@ -4534,7 +4213,7 @@ dependencies = [ "percent-encoding 2.3.1", "rand 0.8.5", "rsa", - "serde 1.0.217", + "serde 1.0.218", "sha1", "sha2", "smallvec", @@ -4571,7 +4250,7 @@ dependencies = [ "memchr", "once_cell", "rand 0.8.5", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "sha2", "smallvec", @@ -4598,7 +4277,7 @@ dependencies = [ "libsqlite3-sys", "log 0.4.25", "percent-encoding 2.3.1", - "serde 1.0.217", + "serde 1.0.218", "serde_urlencoded", "sqlx-core", "tracing", @@ -4662,12 +4341,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" - [[package]] name = "synstructure" version = "0.13.1" @@ -4835,7 +4508,7 @@ dependencies = [ "itoa", "num-conv", "powerfmt", - "serde 1.0.217", + "serde 1.0.218", "time-core", "time-macros", ] @@ -4871,6 +4544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", + "serde 1.0.218", "zerovec", ] @@ -4966,23 +4640,23 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.2" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ - "serde 1.0.217", + "serde 1.0.218", "serde_spanned", "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.22.24", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -4993,7 +4667,7 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -5003,48 +4677,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ "indexmap", - "serde 1.0.217", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde 1.0.218", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.7.3", ] -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper 1.0.2", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" -dependencies = [ - "bitflags 2.8.0", - "bytes", - "http 1.2.0", - "pin-project-lite", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - [[package]] name = "tower-service" version = "0.3.3" @@ -5155,7 +4804,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19be0f411120091e76e13e5a0186d8e2bcc3e7e244afdb70152197f1a8486ceb" dependencies = [ "chrono", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "typeshare-annotation", ] @@ -5279,12 +4928,6 @@ dependencies = [ "percent-encoding 2.3.1", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "utf-8" version = "0.7.6" @@ -5326,7 +4969,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ "getrandom", - "serde 1.0.217", + "serde 1.0.218", ] [[package]] @@ -5368,37 +5011,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "visions" -version = "0.1.0" -dependencies = [ - "async-std", - "async-trait", - "authdb", - "axum", - "axum-test", - "chrono", - "cool_asserts", - "futures", - "include_dir", - "lazy_static", - "mime 0.3.17", - "mime_guess 2.0.5", - "pretty_env_logger", - "result-extended", - "rusqlite", - "rusqlite_migration", - "serde 1.0.217", - "serde_json", - "thiserror 2.0.11", - "tokio", - "tokio-stream", - "tower-http", - "typeshare", - "urlencoding", - "uuid 1.12.0", -] - [[package]] name = "wait-timeout" version = "0.2.0" @@ -5436,7 +5048,7 @@ dependencies = [ "percent-encoding 2.3.1", "pin-project", "scoped-tls", - "serde 1.0.217", + "serde 1.0.218", "serde_json", "serde_urlencoded", "tokio", @@ -5758,6 +5370,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -5780,12 +5401,6 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" -[[package]] -name = "yansi" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" - [[package]] name = "yansi-term" version = "0.1.2" @@ -5801,7 +5416,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ - "serde 1.0.217", + "serde 1.0.218", "stable_deref_trait", "yoke-derive", "zerofrom", diff --git a/Cargo.toml b/Cargo.toml index cc29ea7..d982233 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,4 +33,4 @@ members = [ "tree", "visions/server", "gm-dash/server" -] +, "l10n-db"] diff --git a/l10n-db/Cargo.toml b/l10n-db/Cargo.toml new file mode 100644 index 0000000..d50c181 --- /dev/null +++ b/l10n-db/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "l10n-db" +version = "0.1.0" +edition = "2021" + +[dependencies] +clap = { version = "4.5.30", features = ["derive"] } +icu_locid = { version = "1.5.0", features = ["serde"] } +serde = { version = "1.0.218", features = ["derive"] } +toml = "0.8.20" + +# [lib] +# name = "l10n_db" +# path = "src/lib.rs" +# +# [[bin]] +# name = "l10n-db" +# path = "src/main.rs" + diff --git a/l10n-db/src/bin/main.rs b/l10n-db/src/bin/main.rs new file mode 100644 index 0000000..0ff2a5c --- /dev/null +++ b/l10n-db/src/bin/main.rs @@ -0,0 +1,37 @@ +use clap::{Parser, Subcommand}; + +use l10n_db; + +#[derive(Parser)] +#[command(version, about, long_about = None)] +struct Cli { + #[command(subcommand)] + command: Option, +} + +#[derive(Subcommand)] +enum Commands { + // Edit, potentially creating, a key + // EditKey { }, + // List al keys in the database + ListKeys, + // Search the database + // Search { }, + /// Export the database + Export { + #[arg(short, long)] + format: String, + #[arg(short, long)] + locale: String + }, +} + +fn main() { + let cli = Cli::parse(); + + match &cli.command { + Some(Commands::ListKeys) => todo!(), + Some(Commands::Export{..}) => todo!(), + None => {}, + } +} diff --git a/l10n-db/src/bundle.rs b/l10n-db/src/bundle.rs new file mode 100644 index 0000000..2f7572c --- /dev/null +++ b/l10n-db/src/bundle.rs @@ -0,0 +1,24 @@ +use std::{collections::HashMap, path::Path}; + +use crate::Message; + +pub struct Bundle { + messages: HashMap +} + +impl Bundle { + pub fn new() -> Self { + Self{ messages: HashMap::new() } + } + + pub fn load_from_disk(path: &Path) -> Self { + Self { + messages: HashMap::new() + } + } +} + + +#[cfg(test)] +mod test { +} diff --git a/l10n-db/src/lib.rs b/l10n-db/src/lib.rs new file mode 100644 index 0000000..1dd4cc3 --- /dev/null +++ b/l10n-db/src/lib.rs @@ -0,0 +1,20 @@ +mod bundle; +pub use bundle::Bundle; + +mod types; +pub use types::{Message, Variant}; + +/* +#[cfg(test)] +mod test { + #[test] + fn it_can_represent_an_untranslated_message() { + todo!() + } + + #[test] + fn it_can_represent_a_partially_translated_message() { + todo!() + } +} +*/ diff --git a/l10n-db/src/types.rs b/l10n-db/src/types.rs new file mode 100644 index 0000000..0e7de32 --- /dev/null +++ b/l10n-db/src/types.rs @@ -0,0 +1,46 @@ +use std::{collections::HashMap, time::SystemTime}; + +use icu_locid::LanguageIdentifier; +use serde::{Deserialize, Serialize}; + +#[derive(Deserialize, Serialize)] +pub struct Message { + key: String, + description: String, + variants: HashMap, +} + +impl Message { + pub fn new(key: String) -> Self { + Self { + key, + description: "".to_owned(), + variants: HashMap::new(), + } + } + + pub fn set_description(&mut self, desc: String) { + self.description = desc; + } + + pub fn description(&self) -> &str { + &self.description + } + + pub fn variant_mut(&mut self, locale: LanguageIdentifier) -> &mut Variant { + self.variants.entry(locale.clone()).or_insert(Variant { + locale, + content: "".to_owned(), + modified: SystemTime::now(), + }) + } +} + +#[derive(Deserialize, Serialize)] +pub struct Variant { + locale: LanguageIdentifier, + content: String, + modified: SystemTime, +} + +