From 834294505c8ec0ea7c16910a05e5cc8b3999eaf5 Mon Sep 17 00:00:00 2001 From: kruserr <46799551+kruserr@users.noreply.github.com> Date: Sun, 26 May 2024 17:15:12 +0000 Subject: [PATCH 1/4] build: cargo update --- Cargo.lock | 260 +++++++++++++++++++++++++++-------------------------- 1 file changed, 133 insertions(+), 127 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 50f8eb2..d411d87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -41,9 +41,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", @@ -52,15 +52,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -79,9 +79,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "bitflags" -version = "1.3.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "block-buffer" @@ -100,15 +100,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.89" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" [[package]] name = "cfg-if" @@ -137,9 +137,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "digest" @@ -153,9 +153,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -247,9 +247,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -264,16 +264,16 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "h2" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.12", "indexmap", "slab", "tokio", @@ -283,9 +283,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "headers" @@ -296,7 +296,7 @@ dependencies = [ "base64", "bytes", "headers-core", - "http", + "http 0.2.12", "httpdate", "mime", "sha1", @@ -308,7 +308,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" dependencies = [ - "http", + "http 0.2.12", ] [[package]] @@ -328,6 +328,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.6" @@ -335,7 +346,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.12", "pin-project-lite", ] @@ -362,7 +373,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.12", "http-body", "httparse", "httpdate", @@ -387,9 +398,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -397,21 +408,21 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -425,9 +436,9 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memmap2" @@ -456,9 +467,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" dependencies = [ "adler", ] @@ -483,7 +494,7 @@ dependencies = [ "bytes", "encoding_rs", "futures-util", - "http", + "http 0.2.12", "httparse", "log", "memchr", @@ -519,9 +530,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -529,15 +540,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -568,9 +579,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -586,18 +597,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -657,33 +668,24 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ "bitflags", ] [[package]] name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64", -] +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "scoped-tls" @@ -699,18 +701,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", @@ -719,9 +721,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", @@ -753,9 +755,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -771,15 +773,15 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -793,9 +795,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "syn" -version = "2.0.52" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", @@ -804,18 +806,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", @@ -839,9 +841,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -869,9 +871,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -880,9 +882,9 @@ dependencies = [ [[package]] name = "tokio-test" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719" +checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" dependencies = [ "async-stream", "bytes", @@ -893,9 +895,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" dependencies = [ "futures-util", "log", @@ -905,16 +907,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -951,14 +952,14 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" dependencies = [ "byteorder", "bytes", "data-encoding", - "http", + "http 1.1.0", "httparse", "log", "rand", @@ -1038,15 +1039,15 @@ dependencies = [ [[package]] name = "warp" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e92e22e03ff1230c03a1a8ee37d2f89cd489e2e541b7550d6afad96faed169" +checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" dependencies = [ "bytes", "futures-channel", "futures-util", "headers", - "http", + "http 0.2.12", "hyper", "log", "mime", @@ -1054,13 +1055,11 @@ dependencies = [ "multer", "percent-encoding", "pin-project", - "rustls-pemfile", "scoped-tls", "serde", "serde_json", "serde_urlencoded", "tokio", - "tokio-stream", "tokio-tungstenite", "tokio-util", "tower-service", @@ -1088,7 +1087,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -1108,17 +1107,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -1129,9 +1129,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -1141,9 +1141,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -1153,9 +1153,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -1165,9 +1171,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -1177,9 +1183,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -1189,9 +1195,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -1201,6 +1207,6 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" From 51f4a63f5a6c3c64d1f199371f0807ae355477db Mon Sep 17 00:00:00 2001 From: kruserr <46799551+kruserr@users.noreply.github.com> Date: Sun, 26 May 2024 17:25:53 +0000 Subject: [PATCH 2/4] fix: clippy warnings --- rapiddb/src/db/mmav_db/mmav_async_database.rs | 8 ++++++-- rapiddb/src/db/mmav_db/mmav_database.rs | 8 ++++++-- rapiddb/src/db/mmav_db/mmav_unit.rs | 2 ++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/rapiddb/src/db/mmav_db/mmav_async_database.rs b/rapiddb/src/db/mmav_db/mmav_async_database.rs index c12fce4..fb8efae 100644 --- a/rapiddb/src/db/mmav_db/mmav_async_database.rs +++ b/rapiddb/src/db/mmav_db/mmav_async_database.rs @@ -107,6 +107,7 @@ impl MMAVAsyncDatabase { .read(true) .write(true) .create(true) + .truncate(false) .open(&file_name) .unwrap_or_else(|error| { if error.kind() == std::io::ErrorKind::NotFound { @@ -126,6 +127,7 @@ impl MMAVAsyncDatabase { .read(true) .write(true) .create(true) + .truncate(false) .open(file_name) .unwrap() }); @@ -155,7 +157,7 @@ impl Default for MMAVAsyncDatabase { #[async_trait::async_trait] impl IAsyncDatabase for MMAVAsyncDatabase { async fn contains(&self, id: &str) -> bool { - self.sensors.get(id).is_some() + self.sensors.contains_key(id) } async fn get(&mut self, id: &str, rec_id: usize) -> Vec { @@ -215,6 +217,7 @@ impl IAsyncDatabase for MMAVAsyncDatabase { .read(true) .write(true) .create(true) + .truncate(false) .open(&file_name) .unwrap_or_else(|error| { if error.kind() == std::io::ErrorKind::NotFound { @@ -234,6 +237,7 @@ impl IAsyncDatabase for MMAVAsyncDatabase { .read(true) .write(true) .create(true) + .truncate(false) .open(file_name) .unwrap() }); @@ -243,7 +247,7 @@ impl IAsyncDatabase for MMAVAsyncDatabase { } async fn get_aggregates(&self, id: &str) -> Vec { - if self.aggregates.get(id).is_none() { + if !self.aggregates.contains_key(id) { return Default::default(); } diff --git a/rapiddb/src/db/mmav_db/mmav_database.rs b/rapiddb/src/db/mmav_db/mmav_database.rs index 4996e06..b7b7163 100644 --- a/rapiddb/src/db/mmav_db/mmav_database.rs +++ b/rapiddb/src/db/mmav_db/mmav_database.rs @@ -107,6 +107,7 @@ impl MMAVDatabase { .read(true) .write(true) .create(true) + .truncate(false) .open(&file_name) .unwrap_or_else(|error| { if error.kind() == std::io::ErrorKind::NotFound { @@ -126,6 +127,7 @@ impl MMAVDatabase { .read(true) .write(true) .create(true) + .truncate(false) .open(file_name) .unwrap() }); @@ -154,7 +156,7 @@ impl Default for MMAVDatabase { } impl IDatabase for MMAVDatabase { fn contains(&self, id: &str) -> bool { - self.sensors.get(id).is_some() + self.sensors.contains_key(id) } fn get(&mut self, id: &str, rec_id: usize) -> Vec { @@ -214,6 +216,7 @@ impl IDatabase for MMAVDatabase { .read(true) .write(true) .create(true) + .truncate(false) .open(&file_name) .unwrap_or_else(|error| { if error.kind() == std::io::ErrorKind::NotFound { @@ -233,6 +236,7 @@ impl IDatabase for MMAVDatabase { .read(true) .write(true) .create(true) + .truncate(false) .open(file_name) .unwrap() }); @@ -242,7 +246,7 @@ impl IDatabase for MMAVDatabase { } fn get_aggregates(&self, id: &str) -> Vec { - if self.aggregates.get(id).is_none() { + if !self.aggregates.contains_key(id) { return Default::default(); } diff --git a/rapiddb/src/db/mmav_db/mmav_unit.rs b/rapiddb/src/db/mmav_db/mmav_unit.rs index 283646d..02351eb 100644 --- a/rapiddb/src/db/mmav_db/mmav_unit.rs +++ b/rapiddb/src/db/mmav_db/mmav_unit.rs @@ -44,6 +44,7 @@ impl MMAVUnit { .read(true) .write(true) .create(true) + .truncate(false) .open(file_name) .unwrap_or_else(|error| { if error.kind() == std::io::ErrorKind::NotFound { @@ -55,6 +56,7 @@ impl MMAVUnit { .read(true) .write(true) .create(true) + .truncate(false) .open(file_name) .unwrap() }); From 377a1522a5e0f69e2a2d33adcb4cefbef99cfae4 Mon Sep 17 00:00:00 2001 From: kruserr <46799551+kruserr@users.noreply.github.com> Date: Sun, 26 May 2024 17:26:28 +0000 Subject: [PATCH 3/4] build: use rust 1.78 --- tooling/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling/Dockerfile b/tooling/Dockerfile index c5d3b6e..c096815 100644 --- a/tooling/Dockerfile +++ b/tooling/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/rust:1.76-slim-bookworm AS builder +FROM docker.io/rust:1.78-slim-bookworm AS builder RUN apt-get update && \ apt-get install -y pkg-config libssl-dev && \ rm -rf /var/lib/apt/lists/* From b444a748c9869c9e55bff295184ab6c85fb730a6 Mon Sep 17 00:00:00 2001 From: kruserr <46799551+kruserr@users.noreply.github.com> Date: Sun, 26 May 2024 17:38:35 +0000 Subject: [PATCH 4/4] feat: use proper error handling in mmav and mmav_unit --- rapiddb/src/db/mmav_db/mmav.rs | 17 ++--- rapiddb/src/db/mmav_db/mmav_unit.rs | 96 +++++++++++------------------ rapiddb/src/errors/mmav_error.rs | 32 ---------- rapiddb/src/errors/mod.rs | 76 ++++++++++++++++++++++- 4 files changed, 119 insertions(+), 102 deletions(-) delete mode 100644 rapiddb/src/errors/mmav_error.rs diff --git a/rapiddb/src/db/mmav_db/mmav.rs b/rapiddb/src/db/mmav_db/mmav.rs index a26b999..e0136cb 100644 --- a/rapiddb/src/db/mmav_db/mmav.rs +++ b/rapiddb/src/db/mmav_db/mmav.rs @@ -1,5 +1,5 @@ use crate::db::mmav_db::mmav_unit::MMAVUnit; -use crate::errors::MMAVError; +use crate::errors::Error; /// Memory Mapped Append-only Vector /// @@ -148,12 +148,15 @@ impl MMAV { return unit_map[&index].len(); } - let unit = MMAVUnit::new(&format!("{id}/{index}"), size, data_start_index); - let result = unit.len(); + let mut result: usize = Default::default(); - unit_map.insert(index, unit); + let _ = MMAVUnit::new(&format!("{id}/{index}"), size, data_start_index) + .map(|unit| { + result = unit.len(); + unit_map.insert(index, unit); + }); - result + return result; } /// Load unit that contains `index` @@ -231,11 +234,11 @@ impl MMAV { pub fn push(&mut self, value: &[u8]) { self.unit_map.get_mut(&self.index).unwrap().push(value).unwrap_or_else( |error| match error { - MMAVError::ArrayFull => { + Error::ArrayFull => { self.expand(); self.push(value); } - MMAVError::FileFull => { + Error::FileFull => { self.expand(); self.push(value); } diff --git a/rapiddb/src/db/mmav_db/mmav_unit.rs b/rapiddb/src/db/mmav_db/mmav_unit.rs index 02351eb..ea84f08 100644 --- a/rapiddb/src/db/mmav_db/mmav_unit.rs +++ b/rapiddb/src/db/mmav_db/mmav_unit.rs @@ -1,4 +1,4 @@ -use crate::errors::MMAVError; +use crate::errors::Error; /// Memory Mapped Append-only Vector Unit /// @@ -24,7 +24,6 @@ impl MMAVUnit { /// Memory Mapped Append-only Vector Unit Constructor /// /// ## Default params: - /// /// `size` = 4000000 /// /// `data_start_index` = 80008 @@ -37,61 +36,53 @@ impl MMAVUnit { /// unit.push(data).unwrap_or_default(); /// assert_eq!(unit.last(), data); /// ``` - pub fn new(file_name: &str, size: usize, data_start_index: usize) -> Self { - let file_did_exist = std::path::Path::new(file_name).exists(); + pub fn new( + file_name: &str, + size: usize, + data_start_index: usize, + ) -> Result { + let file_path = std::path::Path::new(file_name); + let file_exists = file_path.exists(); + + if (!file_exists) { + file_path.parent().map(std::fs::create_dir_all); + } let file = std::fs::OpenOptions::new() .read(true) .write(true) .create(true) .truncate(false) - .open(file_name) - .unwrap_or_else(|error| { - if error.kind() == std::io::ErrorKind::NotFound { - std::fs::create_dir(file_name.split('/').collect::>()[0]) - .unwrap_or_default(); - } - - std::fs::OpenOptions::new() - .read(true) - .write(true) - .create(true) - .truncate(false) - .open(file_name) - .unwrap() - }); - - file.set_len(size as u64).unwrap_or_default(); - - let mut mmap = unsafe { memmap2::MmapMut::map_mut(&file).unwrap() }; + .open(file_name)?; + + file.set_len(size as u64)?; + + let mut mmap = unsafe { memmap2::MmapMut::map_mut(&file)? }; mmap.advise(memmap2::Advice::Random).unwrap_or_default(); let mut seek = data_start_index; - if file_did_exist { - seek = u32::from_ne_bytes(mmap[0..4].try_into().unwrap()) as usize; + if (file_exists) { + seek = u32::from_ne_bytes(mmap[0..4].try_into()?) as usize; if seek > mmap.len() { - panic!( - "seek_index must be between {data_start_index} and {}", - mmap.len() - ); + return Err(Error::IndexOutOfRange); } } let mut seek_index = 8; - if file_did_exist { - seek_index = u32::from_ne_bytes(mmap[4..8].try_into().unwrap()) as usize; + if (file_exists) { + seek_index = u32::from_ne_bytes(mmap[4..8].try_into()?) as usize; if seek_index > data_start_index { - panic!("seek_index must be between 8 and {data_start_index}"); + return Err(Error::IndexOutOfRange); } } - if mmap[seek] == 0 { + if (mmap[seek] == 0) { mmap[seek] = 0; } - Self { seek, seek_index, mmap, data_start_index } + return Ok(Self { seek, seek_index, mmap, data_start_index }); } /// Set seek to `len` @@ -118,12 +109,6 @@ impl MMAVUnit { /// Push `value` to vector /// - /// ## Errors - /// ```ignore - /// MMAVError::ArrayFull - /// MMAVError::FileFull - /// ``` - /// /// ## Examples /// ```ignore /// let mut unit = MMAVUnit::new("test-0/0", 4000000, 80008); @@ -132,13 +117,13 @@ impl MMAVUnit { /// unit.push(data).unwrap_or_default(); /// assert_eq!(unit.last(), data); /// ``` - pub fn push(&mut self, value: &[u8]) -> Result<(), MMAVError> { + pub fn push(&mut self, value: &[u8]) -> Result<(), Error> { if self.len() > 9999 { - return Err(MMAVError::ArrayFull); + return Err(Error::ArrayFull); } if self.seek + value.len() > self.mmap.len() { - return Err(MMAVError::FileFull); + return Err(Error::FileFull); } self.mmap[self.seek..self.seek + value.len()].clone_from_slice(value); @@ -149,13 +134,6 @@ impl MMAVUnit { /// Get `index` from vector /// - /// ## Errors - /// ```ignore - /// MMAVError::ArrayEmpty - /// MMAVError::IndexOutOfRange - /// MMAVError::IndexOutOfBounds - /// ``` - /// /// ## Examples /// ```ignore /// let mut unit = MMAVUnit::new("test-0/0", 4000000, 80008); @@ -164,32 +142,30 @@ impl MMAVUnit { /// unit.push(data).unwrap_or_default(); /// assert_eq!(unit.get(0), data); /// ``` - pub fn get(&self, index: usize) -> Result, MMAVError> { + pub fn get(&self, index: usize) -> Result, Error> { if self.seek_index == 8 { - return Err(MMAVError::ArrayEmpty); + return Err(Error::ArrayEmpty); } if index > 9999 { - return Err(MMAVError::IndexOutOfRange); + return Err(Error::IndexOutOfRange); } if index > self.len() - 1 { - return Err(MMAVError::IndexOutOfBounds); + return Err(Error::IndexOutOfBounds); } let i = 8 * index + 8; - let start = - u32::from_ne_bytes(self.mmap[i..i + 4].try_into().unwrap()) as usize; - let end = - u32::from_ne_bytes(self.mmap[i + 4..i + 8].try_into().unwrap()) as usize; + let start = u32::from_ne_bytes(self.mmap[i..i + 4].try_into()?) as usize; + let end = u32::from_ne_bytes(self.mmap[i + 4..i + 8].try_into()?) as usize; if start < self.data_start_index || start > self.mmap.len() { - return Err(MMAVError::IndexOutOfRange); + return Err(Error::IndexOutOfRange); } if end < self.data_start_index || end > self.mmap.len() { - return Err(MMAVError::IndexOutOfRange); + return Err(Error::IndexOutOfRange); } Ok((self.mmap[start..end]).to_vec()) diff --git a/rapiddb/src/errors/mmav_error.rs b/rapiddb/src/errors/mmav_error.rs deleted file mode 100644 index a67a6ff..0000000 --- a/rapiddb/src/errors/mmav_error.rs +++ /dev/null @@ -1,32 +0,0 @@ -/// Memory Mapped Append-only Vector Error -/// -/// ## Examples -/// ```no_run -/// let check_size = |size: usize| -> Result<(), rapiddb::errors::MMAVError> { -/// if size > 4000000 { -/// return Err(rapiddb::errors::MMAVError::FileFull); -/// } -/// if size > 9999 { -/// return Err(rapiddb::errors::MMAVError::ArrayFull); -/// } -/// -/// Ok(()) -/// }; -/// -/// check_size(10000).unwrap_or_else(|error| match error { -/// rapiddb::errors::MMAVError::FileFull => { -/// println!("handle FileFull here"); -/// } -/// rapiddb::errors::MMAVError::ArrayFull => { -/// println!("handle ArrayFull here"); -/// } -/// _ => (), -/// }); -/// ``` -pub enum MMAVError { - FileFull, - ArrayFull, - ArrayEmpty, - IndexOutOfRange, - IndexOutOfBounds, -} diff --git a/rapiddb/src/errors/mod.rs b/rapiddb/src/errors/mod.rs index d3499cc..12874a4 100644 --- a/rapiddb/src/errors/mod.rs +++ b/rapiddb/src/errors/mod.rs @@ -1,5 +1,75 @@ -//! RapidDB Errors +/// An error in this library. +/// +/// ## Examples +/// ```no_run +/// let check_size = |size: usize| -> Result<(), rapiddb::errors::Error> { +/// if size > 4000000 { +/// return Err(rapiddb::errors::Error::FileFull); +/// } +/// if size > 9999 { +/// return Err(rapiddb::errors::Error::ArrayFull); +/// } +/// +/// Ok(()) +/// }; +/// +/// check_size(10000).unwrap_or_else(|error| match error { +/// rapiddb::errors::Error::FileFull => { +/// println!("handle FileFull here"); +/// } +/// rapiddb::errors::Error::ArrayFull => { +/// println!("handle ArrayFull here"); +/// } +/// _ => (), +/// }); +/// ``` +#[derive(Debug)] +pub enum Error { + SizeCorrupted, + SeekCorrupted, + FileFull, + ArrayFull, + ArrayEmpty, + IndexOutOfRange, + IndexOutOfBounds, + StdNumParseIntError(std::num::ParseIntError), + StdIoError(std::io::Error), + StdArrayTryFromSliceError(std::array::TryFromSliceError), +} -mod mmav_error; +impl From for Error { + fn from(error: std::num::ParseIntError) -> Self { + Self::StdNumParseIntError(error) + } +} -pub use mmav_error::MMAVError; +impl From for Error { + fn from(error: std::io::Error) -> Self { + Self::StdIoError(error) + } +} + +impl From for Error { + fn from(error: std::array::TryFromSliceError) -> Self { + Self::StdArrayTryFromSliceError(error) + } +} + +impl std::fmt::Display for Error { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::SizeCorrupted => write!(f, "Size corrupted"), + Self::SeekCorrupted => write!(f, "Seek corrupted"), + Self::FileFull => write!(f, "File is full"), + Self::ArrayFull => write!(f, "Array is full"), + Self::ArrayEmpty => write!(f, "Array is empty"), + Self::IndexOutOfRange => write!(f, "Index out of range"), + Self::IndexOutOfBounds => write!(f, "Index out of bounds"), + Self::StdNumParseIntError(e) => std::fmt::Display::fmt(e, f), + Self::StdIoError(e) => std::fmt::Display::fmt(e, f), + Self::StdArrayTryFromSliceError(e) => std::fmt::Display::fmt(e, f), + } + } +} + +impl std::error::Error for Error {}