diff --git a/Cargo.lock b/Cargo.lock index 6be7358..c4ef8d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,9 +10,9 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -58,22 +58,22 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -96,9 +96,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" +checksum = "93c1f86859c1af3d514fa19e8323147ff10ea98684e6c7b307912509f50e67b2" dependencies = [ "compression-codecs", "compression-core", @@ -126,7 +126,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -164,9 +164,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.14.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879b6c89592deb404ba4dc0ae6b58ffd1795c78991cbb5b8bc441c48a070440d" +checksum = "5932a7d9d28b0d2ea34c6b3779d35e3dd6f6345317c34e73438c4f1f29144151" dependencies = [ "aws-lc-sys", "zeroize", @@ -174,9 +174,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.32.3" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "107a4e9d9cab9963e04e84bb8dee0e25f2a987f9a8bad5ed054abd439caa8f8c" +checksum = "1826f2e4cfc2cd19ee53c42fbf68e2f81ec21108e0b7ecf6a71cf062137360fc" dependencies = [ "bindgen", "cc", @@ -214,14 +214,14 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.106", + "syn", ] [[package]] name = "bitflags" -version = "2.9.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "block-buffer" @@ -259,35 +259,35 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "c2rust-bitfields" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46dc7d2bffa0d0b3d47eb2dc69973466858281446c2ac9f6d8a10e92ab1017df" +checksum = "dcee50917f9de1a018e3f4f9a8f2ff3d030a288cffa4b18d9b391e97c12e4cfb" dependencies = [ "c2rust-bitfields-derive", ] [[package]] name = "c2rust-bitfields-derive" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe1117afa5937ce280034e31fa1e84ed1824a252f75380327eed438535333f8" +checksum = "3b457277798202ccd365b9c112ebee08ddd57f1033916c8b8ea52f222e5b715d" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] name = "cbindgen" -version = "0.29.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" +checksum = "befbfd072a8e81c02f8c507aefce431fe5e7d051f83d48a23ffc9b9fe5a11799" dependencies = [ "clap", "heck", @@ -297,16 +297,16 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.106", + "syn", "tempfile", "toml", ] [[package]] name = "cc" -version = "1.2.41" +version = "1.2.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" +checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36" dependencies = [ "find-msvc-tools", "jobserver", @@ -362,18 +362,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.49" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4512b90fa68d3a9932cea5184017c5d200f5921df706d45e853537dea51508f" +checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.49" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0025e98baa12e766c67ba13ff4695a887a1eba19569aad00a472546795bd6730" +checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" dependencies = [ "anstream", "anstyle", @@ -404,9 +404,9 @@ checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "compression-codecs" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23" +checksum = "680dc087785c5230f8e8843e2e57ac7c1c90488b6a91b88caa265410568f441b" dependencies = [ "compression-core", "flate2", @@ -414,9 +414,9 @@ dependencies = [ [[package]] name = "compression-core" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" +checksum = "3a9b614a5787ef0c8802a55766480563cb3a93b435898c422ed2a359cf811582" [[package]] name = "concurrent-queue" @@ -493,21 +493,21 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crossfire" -version = "2.1.6" +version = "2.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6b5ad0a8e719cef020e136986d534068ffd35df287ab1635ff242585c02213e" +checksum = "121161e240fcedaef95067636249fd1200e76921a2f0b101dca1648ba6d7ffa5" dependencies = [ "crossbeam-queue", "crossbeam-utils", - "futures", + "futures-core", "parking_lot", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -534,14 +534,14 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] name = "deranged" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", ] @@ -565,7 +565,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -634,9 +634,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" +checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" [[package]] name = "flagset" @@ -646,9 +646,9 @@ checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" [[package]] name = "flate2" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", "miniz_oxide", @@ -756,7 +756,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -791,9 +791,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -895,9 +895,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "hyper" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ "atomic-waker", "bytes", @@ -916,9 +916,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" dependencies = [ "base64", "bytes", @@ -964,9 +964,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -977,9 +977,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -990,11 +990,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -1005,42 +1004,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -1050,7 +1045,7 @@ dependencies = [ [[package]] name = "idevice" -version = "0.1.47" +version = "0.1.48" dependencies = [ "async-stream", "async_zip", @@ -1141,9 +1136,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", "hashbrown", @@ -1159,9 +1154,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -1169,9 +1164,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -1200,9 +1195,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.81" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -1253,9 +1248,9 @@ checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" @@ -1479,11 +1474,10 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" dependencies = [ - "byteorder", "lazy_static", "libm", "num-integer", @@ -1544,9 +1538,9 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "parking" @@ -1615,7 +1609,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -1690,9 +1684,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -1719,32 +1713,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.106", + "syn", ] [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] [[package]] name = "quick-xml" -version = "0.38.3" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -1913,9 +1907,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +checksum = "40a0376c50d0358279d9d643e4bf7b7be212f1f4ff1da9070a7b54d22ef75c88" dependencies = [ "const-oid", "digest", @@ -1953,9 +1947,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.33" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "751e04a496ca00bb97a5e043158d23d66b5aabf2e1d5aa2a0aaebb1aafe6f82c" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "aws-lc-rs", "log", @@ -1967,29 +1961,20 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.7" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10b3f4191e8a80e6b43eebabfac91e5dcecebb27a71f04e820c47ec41d314bf" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "aws-lc-rs", "ring", @@ -2042,7 +2027,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -2060,11 +2045,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.9" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -2202,20 +2187,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -2239,7 +2213,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -2291,7 +2265,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -2302,7 +2276,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -2347,9 +2321,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -2373,7 +2347,7 @@ checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -2401,7 +2375,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -2416,9 +2390,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", @@ -2430,44 +2404,42 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.23" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" dependencies = [ "indexmap", - "serde", + "serde_core", "serde_spanned", "toml_datetime", - "toml_write", + "toml_parser", + "toml_writer", "winnow", ] [[package]] -name = "toml_write" -version = "0.1.2" +name = "toml_datetime" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" [[package]] name = "tower" @@ -2545,7 +2517,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -2595,9 +2567,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tun-rs" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a80fd6f2e3ec34082bcfc96b007ecfd91b7e02b402eb29cb58c471e8ae30316" +checksum = "6179e34f9dfebbcf99cbe67aa142728d2f8481cae04e0c545ab2dfa1bc26b2c3" dependencies = [ "blocking", "byteorder", @@ -2628,9 +2600,9 @@ checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "untrusted" @@ -2640,16 +2612,15 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "3.1.2" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ba1025f18a4a3fc3e9b48c868e9beb4f24f4b4b1a325bada26bd4119f46537" +checksum = "d39cb1dbab692d82a977c0392ffac19e188bd9186a9f32806f0aaa859d75585a" dependencies = [ "base64", "flate2", "log", "percent-encoding", "rustls", - "rustls-pemfile", "rustls-pki-types", "ureq-proto", "utf-8", @@ -2748,9 +2719,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.104" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", @@ -2759,25 +2730,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-futures" -version = "0.4.54" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", @@ -2788,9 +2745,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.104" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2798,31 +2755,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.104" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", - "wasm-bindgen-backend", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.104" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.81" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -2830,9 +2787,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ "rustls-pki-types", ] @@ -2932,7 +2889,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -2943,7 +2900,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -3183,9 +3140,6 @@ name = "winnow" version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" -dependencies = [ - "memchr", -] [[package]] name = "winreg" @@ -3205,9 +3159,9 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "x509-cert" @@ -3225,11 +3179,10 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -3237,13 +3190,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", "synstructure", ] @@ -3264,7 +3217,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] @@ -3284,7 +3237,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", "synstructure", ] @@ -3305,14 +3258,14 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -3321,9 +3274,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -3332,11 +3285,11 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn", ] diff --git a/idevice/Cargo.toml b/idevice/Cargo.toml index 7096ef0..7c9573c 100644 --- a/idevice/Cargo.toml +++ b/idevice/Cargo.toml @@ -2,7 +2,7 @@ name = "idevice" description = "A Rust library to interact with services on iOS devices." authors = ["Jackson Coxson"] -version = "0.1.47" +version = "0.1.48" edition = "2024" license = "MIT" documentation = "https://docs.rs/idevice" diff --git a/idevice/src/lib.rs b/idevice/src/lib.rs index 3272104..dca9425 100644 --- a/idevice/src/lib.rs +++ b/idevice/src/lib.rs @@ -1,4 +1,6 @@ #![doc = include_str!("../README.md")] +#![warn(missing_debug_implementations)] +#![warn(missing_copy_implementations)] // Jackson Coxson #[cfg(feature = "pair")] @@ -128,6 +130,7 @@ pub type IdeviceSocket = Box; /// /// Manages the connection socket and provides methods for common device operations /// and message exchange. +#[derive(Debug)] pub struct Idevice { /// The underlying connection socket, boxed for dynamic dispatch socket: Option>, diff --git a/idevice/src/services/afc/file.rs b/idevice/src/services/afc/file.rs index 34432ae..855b78c 100644 --- a/idevice/src/services/afc/file.rs +++ b/idevice/src/services/afc/file.rs @@ -7,6 +7,7 @@ use tokio::io::{AsyncRead, AsyncSeek, AsyncWrite}; use super::inner_file::InnerFileDescriptor; use crate::IdeviceError; +#[derive(Debug)] pub struct FileDescriptor<'a> { inner: Pin>>, } diff --git a/idevice/src/services/afc/inner_file.rs b/idevice/src/services/afc/inner_file.rs index a1a4acb..fcb9dd6 100644 --- a/idevice/src/services/afc/inner_file.rs +++ b/idevice/src/services/afc/inner_file.rs @@ -22,6 +22,7 @@ fn chunk_number(n: usize, chunk_size: usize) -> impl Iterator { } // Used to descripe what the future returns +#[derive(Debug)] pub(crate) enum PendingResult { // writing Empty, @@ -368,6 +369,16 @@ impl AsyncSeek for InnerFileDescriptor<'_> { } } +impl std::fmt::Debug for InnerFileDescriptor<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("InnerFileDescriptor") + .field("client", &self.client) + .field("fd", &self.fd) + .field("path", &self.path) + .finish() + } +} + #[cfg(test)] mod tests { use std::sync::Arc; diff --git a/idevice/src/services/afc/mod.rs b/idevice/src/services/afc/mod.rs index c650dd8..d767bb6 100644 --- a/idevice/src/services/afc/mod.rs +++ b/idevice/src/services/afc/mod.rs @@ -23,6 +23,7 @@ pub mod packet; pub const MAGIC: u64 = 0x4141504c36414643; /// Client for interacting with the AFC service on iOS devices +#[derive(Debug)] pub struct AfcClient { /// The underlying iDevice connection pub idevice: Idevice, diff --git a/idevice/src/services/afc/opcode.rs b/idevice/src/services/afc/opcode.rs index ade0b29..22de86e 100644 --- a/idevice/src/services/afc/opcode.rs +++ b/idevice/src/services/afc/opcode.rs @@ -1,6 +1,6 @@ // Jackson Coxson -#[derive(Clone, Debug, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, PartialEq, Eq)] #[repr(u64)] pub enum AfcOpcode { Status = 0x00000001, @@ -36,6 +36,7 @@ pub enum AfcOpcode { } #[repr(u64)] +#[derive(Clone, Copy, Debug)] pub enum AfcFopenMode { RdOnly = 0x00000001, // r O_RDONLY Rw = 0x00000002, // r+ O_RDWR | O_CREAT @@ -46,6 +47,7 @@ pub enum AfcFopenMode { } #[repr(u64)] +#[derive(Clone, Copy, Debug)] pub enum LinkType { Hardlink = 0x00000001, Symlink = 0x00000002, diff --git a/idevice/src/services/afc/packet.rs b/idevice/src/services/afc/packet.rs index 93b5439..de4b62a 100644 --- a/idevice/src/services/afc/packet.rs +++ b/idevice/src/services/afc/packet.rs @@ -6,7 +6,7 @@ use crate::{Idevice, IdeviceError}; use super::opcode::AfcOpcode; -#[derive(Clone, Debug)] +#[derive(Clone, Copy, Debug)] pub struct AfcPacketHeader { pub magic: u64, pub entire_len: u64, @@ -32,7 +32,7 @@ impl AfcPacketHeader { res.extend_from_slice(&self.entire_len.to_le_bytes()); res.extend_from_slice(&self.header_payload_len.to_le_bytes()); res.extend_from_slice(&self.packet_num.to_le_bytes()); - res.extend_from_slice(&(self.operation.clone() as u64).to_le_bytes()); + res.extend_from_slice(&(self.operation as u64).to_le_bytes()); res } diff --git a/idevice/src/services/amfi.rs b/idevice/src/services/amfi.rs index 3c468c8..845c298 100644 --- a/idevice/src/services/amfi.rs +++ b/idevice/src/services/amfi.rs @@ -3,6 +3,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; /// Client for interacting with the AMFI service on the device +#[derive(Debug)] pub struct AmfiClient { /// The underlying device connection with established amfi service pub idevice: Idevice, diff --git a/idevice/src/services/bt_packet_logger.rs b/idevice/src/services/bt_packet_logger.rs index 9c581e8..161dc21 100644 --- a/idevice/src/services/bt_packet_logger.rs +++ b/idevice/src/services/bt_packet_logger.rs @@ -13,6 +13,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; /// You must have the Bluetooth profile installed, or you'll get no data. /// /// ``https://developer.apple.com/bug-reporting/profiles-and-logs/?name=bluetooth`` +#[derive(Debug)] pub struct BtPacketLoggerClient { /// The underlying device connection with established logger service pub idevice: Idevice, diff --git a/idevice/src/services/companion_proxy.rs b/idevice/src/services/companion_proxy.rs index 95fe4ea..a952dd9 100644 --- a/idevice/src/services/companion_proxy.rs +++ b/idevice/src/services/companion_proxy.rs @@ -4,10 +4,12 @@ use tracing::warn; use crate::{Idevice, IdeviceError, IdeviceService, RsdService, obf}; +#[derive(Debug)] pub struct CompanionProxy { idevice: Idevice, } +#[derive(Debug)] pub struct CompanionProxyStream { proxy: CompanionProxy, } diff --git a/idevice/src/services/core_device/app_service.rs b/idevice/src/services/core_device/app_service.rs index 98e68a9..65f037b 100644 --- a/idevice/src/services/core_device/app_service.rs +++ b/idevice/src/services/core_device/app_service.rs @@ -19,6 +19,7 @@ impl RsdService for AppServiceClient> { } } +#[derive(Debug)] pub struct AppServiceClient { inner: CoreDeviceServiceClient, } diff --git a/idevice/src/services/core_device/diagnosticsservice.rs b/idevice/src/services/core_device/diagnosticsservice.rs index c19252f..7787808 100644 --- a/idevice/src/services/core_device/diagnosticsservice.rs +++ b/idevice/src/services/core_device/diagnosticsservice.rs @@ -19,6 +19,7 @@ impl RsdService for DiagnostisServiceClient> { } } +#[derive(Debug)] pub struct DiagnostisServiceClient { inner: super::CoreDeviceServiceClient, } @@ -70,3 +71,12 @@ impl DiagnostisServiceClient { } } } + +impl std::fmt::Debug for SysdiagnoseResponse<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("SysdiagnoseResponse") + .field("preferred_filename", &self.preferred_filename) + .field("expected_length", &self.expected_length) + .finish() + } +} diff --git a/idevice/src/services/core_device/mod.rs b/idevice/src/services/core_device/mod.rs index b4d36df..8de7bee 100644 --- a/idevice/src/services/core_device/mod.rs +++ b/idevice/src/services/core_device/mod.rs @@ -17,6 +17,7 @@ pub use openstdiosocket::*; const CORE_SERVICE_VERSION: &str = "443.18"; +#[derive(Debug)] pub struct CoreDeviceServiceClient { inner: RemoteXpcClient, } diff --git a/idevice/src/services/core_device/openstdiosocket.rs b/idevice/src/services/core_device/openstdiosocket.rs index e5630ce..730f73f 100644 --- a/idevice/src/services/core_device/openstdiosocket.rs +++ b/idevice/src/services/core_device/openstdiosocket.rs @@ -16,6 +16,7 @@ impl RsdService for OpenStdioSocketClient { /// Call ``read_uuid`` to get the UUID. Pass that to app service launch to connect to the stream of /// the launched app. Inner is exposed to read and write to, using Tokio's AsyncReadExt/AsyncWriteExt +#[derive(Debug)] pub struct OpenStdioSocketClient { pub inner: Box, } diff --git a/idevice/src/services/core_device_proxy.rs b/idevice/src/services/core_device_proxy.rs index 36e4f5c..a08b0ff 100644 --- a/idevice/src/services/core_device_proxy.rs +++ b/idevice/src/services/core_device_proxy.rs @@ -82,6 +82,7 @@ impl CDTunnelPacket { /// A high-level client for the `com.apple.internal.devicecompute.CoreDeviceProxy` service. /// /// Handles session negotiation, handshake, and tunnel communication. +#[derive(Debug)] pub struct CoreDeviceProxy { /// The underlying idevice connection used for communication. pub idevice: Idevice, diff --git a/idevice/src/services/crashreportcopymobile.rs b/idevice/src/services/crashreportcopymobile.rs index c7259a2..980d058 100644 --- a/idevice/src/services/crashreportcopymobile.rs +++ b/idevice/src/services/crashreportcopymobile.rs @@ -15,6 +15,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, afc::AfcClient, lockdown::Loc /// /// This client wraps access to the `com.apple.crashreportcopymobile` service, /// which exposes crash logs through the Apple File Conduit (AFC). +#[derive(Debug)] pub struct CrashReportCopyMobileClient { /// The underlying AFC client connected to the crash logs directory. pub afc_client: AfcClient, diff --git a/idevice/src/services/debug_proxy.rs b/idevice/src/services/debug_proxy.rs index b0c99c7..387a01a 100644 --- a/idevice/src/services/debug_proxy.rs +++ b/idevice/src/services/debug_proxy.rs @@ -27,6 +27,7 @@ impl RsdService for DebugProxyClient> { /// /// Implements the GDB Remote Serial Protocol for communicating with debugserver /// on iOS devices. Handles packet formatting, checksums, and acknowledgments. +#[derive(Debug)] pub struct DebugProxyClient { /// The underlying socket connection to debugproxy pub socket: R, @@ -38,6 +39,7 @@ pub struct DebugProxyClient { /// /// Commands follow the GDB Remote Serial Protocol format: /// $[]# +#[derive(Debug)] pub struct DebugserverCommand { /// The command name (e.g. "qSupported", "vCont") pub name: String, diff --git a/idevice/src/services/diagnostics_relay.rs b/idevice/src/services/diagnostics_relay.rs index 8f65654..a50e095 100644 --- a/idevice/src/services/diagnostics_relay.rs +++ b/idevice/src/services/diagnostics_relay.rs @@ -3,6 +3,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; /// Client for interacting with the Diagnostics Relay +#[derive(Debug)] pub struct DiagnosticsRelayClient { /// The underlying device connection with established service pub idevice: Idevice, diff --git a/idevice/src/services/dvt/location_simulation.rs b/idevice/src/services/dvt/location_simulation.rs index ec90f51..d10139b 100644 --- a/idevice/src/services/dvt/location_simulation.rs +++ b/idevice/src/services/dvt/location_simulation.rs @@ -46,6 +46,7 @@ use crate::{ }; /// A client for the location simulation service +#[derive(Debug)] pub struct LocationSimulationClient<'a, R: ReadWrite> { /// The underlying channel used for communication channel: Channel<'a, R>, diff --git a/idevice/src/services/dvt/message.rs b/idevice/src/services/dvt/message.rs index 2cb3f5e..a1c55da 100644 --- a/idevice/src/services/dvt/message.rs +++ b/idevice/src/services/dvt/message.rs @@ -66,7 +66,7 @@ use crate::{IdeviceError, pretty_print_plist}; /// Message header containing metadata about the message /// /// 32-byte structure that appears at the start of every message -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, Copy, PartialEq)] pub struct MessageHeader { /// Magic number identifying the protocol (0x1F3D5B79) magic: u32, @@ -91,7 +91,7 @@ pub struct MessageHeader { /// Payload header containing information about the message contents /// /// 16-byte structure following the message header -#[derive(Debug, Default, Clone, PartialEq)] +#[derive(Debug, Default, Clone, Copy, PartialEq)] pub struct PayloadHeader { /// Flags controlling message processing flags: u32, @@ -104,7 +104,7 @@ pub struct PayloadHeader { /// Header for auxiliary data section /// /// 16-byte structure preceding auxiliary data -#[derive(Debug, Default, PartialEq)] +#[derive(Debug, Default, Clone, Copy, PartialEq)] pub struct AuxHeader { /// Buffer size hint (often 496) buffer_size: u32, diff --git a/idevice/src/services/dvt/notifications.rs b/idevice/src/services/dvt/notifications.rs index d4ac923..204da69 100644 --- a/idevice/src/services/dvt/notifications.rs +++ b/idevice/src/services/dvt/notifications.rs @@ -23,6 +23,7 @@ pub struct NotificationInfo { state_description: String, } +#[derive(Debug)] pub struct NotificationsClient<'a, R: ReadWrite> { /// The underlying channel used for communication pub channel: Channel<'a, R>, diff --git a/idevice/src/services/dvt/process_control.rs b/idevice/src/services/dvt/process_control.rs index 2e5b28d..a5ead55 100644 --- a/idevice/src/services/dvt/process_control.rs +++ b/idevice/src/services/dvt/process_control.rs @@ -45,6 +45,7 @@ use super::remote_server::{Channel, RemoteServerClient}; /// /// Provides methods for launching, killing, and managing processes through the /// instruments protocol. Each instance maintains its own communication channel. +#[derive(Debug)] pub struct ProcessControlClient<'a, R: ReadWrite> { /// The underlying channel for communication channel: Channel<'a, R>, diff --git a/idevice/src/services/dvt/remote_server.rs b/idevice/src/services/dvt/remote_server.rs index 9cc8191..4d51506 100644 --- a/idevice/src/services/dvt/remote_server.rs +++ b/idevice/src/services/dvt/remote_server.rs @@ -66,6 +66,7 @@ pub const INSTRUMENTS_MESSAGE_TYPE: u32 = 2; /// /// Manages multiple communication channels and handles message serialization/deserialization. /// Each channel operates independently and maintains its own message queue. +#[derive(Debug)] pub struct RemoteServerClient { /// The underlying device connection idevice: R, @@ -80,6 +81,7 @@ pub struct RemoteServerClient { /// Handle to a specific communication channel /// /// Provides channel-specific operations for use on the remote server client. +#[derive(Debug)] pub struct Channel<'a, R: ReadWrite> { /// Reference to parent client client: &'a mut RemoteServerClient, diff --git a/idevice/src/services/dvt/screenshot.rs b/idevice/src/services/dvt/screenshot.rs index cd021f8..d787e09 100644 --- a/idevice/src/services/dvt/screenshot.rs +++ b/idevice/src/services/dvt/screenshot.rs @@ -16,6 +16,7 @@ use crate::{ /// /// Provides methods for take screnn_shot through the /// instruments protocol. Each instance maintains its own communication channel. +#[derive(Debug)] pub struct ScreenshotClient<'a, R: ReadWrite> { /// The underlying channel for communication channel: Channel<'a, R>, diff --git a/idevice/src/services/heartbeat.rs b/idevice/src/services/heartbeat.rs index f198d48..41dbe5a 100644 --- a/idevice/src/services/heartbeat.rs +++ b/idevice/src/services/heartbeat.rs @@ -12,6 +12,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; /// Note that a running heartbeat client is required to access other services on the device. /// Implements the standard "Marco-Polo" protocol /// where the host sends "Polo" in response to the device's "Marco". +#[derive(Debug)] pub struct HeartbeatClient { /// The underlying device connection with established heartbeat service pub idevice: Idevice, diff --git a/idevice/src/services/house_arrest.rs b/idevice/src/services/house_arrest.rs index b7fb73e..b22fee9 100644 --- a/idevice/src/services/house_arrest.rs +++ b/idevice/src/services/house_arrest.rs @@ -12,6 +12,7 @@ use super::afc::AfcClient; /// /// HouseArrest is used to expose the container or Documents directory of an app to a host machine /// over AFC (Apple File Conduit). +#[derive(Debug)] pub struct HouseArrestClient { /// The underlying device connection with the HouseArrest service pub idevice: Idevice, diff --git a/idevice/src/services/installation_proxy.rs b/idevice/src/services/installation_proxy.rs index 10c716c..aad73cf 100644 --- a/idevice/src/services/installation_proxy.rs +++ b/idevice/src/services/installation_proxy.rs @@ -14,6 +14,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; /// /// This service provides access to information about installed applications /// and can perform application management operations. +#[derive(Debug)] pub struct InstallationProxyClient { /// The underlying device connection with established installation_proxy service pub idevice: Idevice, diff --git a/idevice/src/services/installcoordination_proxy.rs b/idevice/src/services/installcoordination_proxy.rs index d2751c4..df7db6b 100644 --- a/idevice/src/services/installcoordination_proxy.rs +++ b/idevice/src/services/installcoordination_proxy.rs @@ -14,6 +14,7 @@ impl RsdService for InstallcoordinationProxy> { } } +#[derive(Debug)] pub struct InstallcoordinationProxy { inner: RemoteXpcClient, } diff --git a/idevice/src/services/lockdown.rs b/idevice/src/services/lockdown.rs index 5d16e23..88bb652 100644 --- a/idevice/src/services/lockdown.rs +++ b/idevice/src/services/lockdown.rs @@ -14,6 +14,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf, pairing_file}; /// - Access to device information and settings /// - Service discovery and port allocation /// - Session management and security +#[derive(Debug)] pub struct LockdownClient { /// The underlying device connection with established lockdown service pub idevice: crate::Idevice, diff --git a/idevice/src/services/misagent.rs b/idevice/src/services/misagent.rs index 1f1a64b..defa2f1 100644 --- a/idevice/src/services/misagent.rs +++ b/idevice/src/services/misagent.rs @@ -13,6 +13,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, RsdService, obf}; /// - Installation of provisioning profiles /// - Removal of provisioning profiles /// - Querying installed profiles +#[derive(Debug)] pub struct MisagentClient { /// The underlying device connection with established misagent service pub idevice: Idevice, diff --git a/idevice/src/services/mobile_image_mounter.rs b/idevice/src/services/mobile_image_mounter.rs index 11951d0..bb4c18b 100644 --- a/idevice/src/services/mobile_image_mounter.rs +++ b/idevice/src/services/mobile_image_mounter.rs @@ -22,6 +22,7 @@ use crate::tss::TSSRequest; /// # Important Note /// A lockdown client must be established and queried after establishing a mounter client, /// or the device will stop responding to requests. +#[derive(Debug)] pub struct ImageMounter { /// The underlying device connection with established image mounter service idevice: Idevice, diff --git a/idevice/src/services/mobileactivationd.rs b/idevice/src/services/mobileactivationd.rs index 6a5aca1..8f72097 100644 --- a/idevice/src/services/mobileactivationd.rs +++ b/idevice/src/services/mobileactivationd.rs @@ -6,6 +6,7 @@ use plist::Dictionary; use crate::{Idevice, IdeviceError, IdeviceService, lockdown::LockdownClient, obf}; +#[derive(Debug)] pub struct MobileActivationdClient<'a> { provider: &'a dyn crate::provider::IdeviceProvider, } diff --git a/idevice/src/services/mobilebackup2.rs b/idevice/src/services/mobilebackup2.rs index 3ed8e00..26c213d 100644 --- a/idevice/src/services/mobilebackup2.rs +++ b/idevice/src/services/mobilebackup2.rs @@ -22,6 +22,7 @@ pub const DL_CODE_FILE_DATA: u8 = 0x0c; /// /// This service provides access to device backup functionality including /// creating backups, restoring from backups, and managing backup data. +#[derive(Debug)] pub struct MobileBackup2Client { /// The underlying device connection with established mobilebackup2 service pub idevice: Idevice, @@ -46,7 +47,7 @@ impl IdeviceService for MobileBackup2Client { } /// Backup message types used in the mobilebackup2 protocol -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Copy)] pub enum BackupMessageType { /// Request to start a backup operation BackupMessageTypeBackup, diff --git a/idevice/src/services/os_trace_relay.rs b/idevice/src/services/os_trace_relay.rs index e675ef6..27376aa 100644 --- a/idevice/src/services/os_trace_relay.rs +++ b/idevice/src/services/os_trace_relay.rs @@ -10,6 +10,7 @@ use tokio::io::AsyncWriteExt; use crate::{Idevice, IdeviceError, IdeviceService, obf}; /// Client for interacting with the iOS device OsTraceRelay service +#[derive(Debug)] pub struct OsTraceRelayClient { /// The underlying device connection with established OsTraceRelay service pub idevice: Idevice, @@ -27,6 +28,7 @@ impl IdeviceService for OsTraceRelayClient { } /// An initialized client for receiving logs +#[derive(Debug)] pub struct OsTraceRelayReceiver { inner: OsTraceRelayClient, } @@ -48,7 +50,7 @@ pub struct SyslogLabel { pub category: String, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy)] pub enum LogLevel { Notice = 0, Info = 1, diff --git a/idevice/src/services/pcapd.rs b/idevice/src/services/pcapd.rs index 15bb06f..4e8e70a 100644 --- a/idevice/src/services/pcapd.rs +++ b/idevice/src/services/pcapd.rs @@ -13,6 +13,7 @@ const ETHERNET_HEADER: &[u8] = &[ /// Client for interacting with the pcapd service on the device. /// Note that this service only works over USB or through RSD. +#[derive(Debug)] pub struct PcapdClient { /// The underlying device connection with established service pub idevice: Idevice, @@ -220,6 +221,7 @@ impl<'a> ByteReader<'a> { } /// A writer for creating `.pcap` files from DevicePackets without external dependencies. +#[derive(Debug)] pub struct PcapFileWriter { writer: W, } diff --git a/idevice/src/services/preboard_service.rs b/idevice/src/services/preboard_service.rs index 98baddf..e4d904f 100644 --- a/idevice/src/services/preboard_service.rs +++ b/idevice/src/services/preboard_service.rs @@ -3,6 +3,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, RsdService, obf}; /// Client for interacting with the preboard service on the device. +#[derive(Debug)] pub struct PreboardServiceClient { /// The underlying device connection with established service pub idevice: Idevice, diff --git a/idevice/src/services/restore_service.rs b/idevice/src/services/restore_service.rs index 529d429..08f8645 100644 --- a/idevice/src/services/restore_service.rs +++ b/idevice/src/services/restore_service.rs @@ -6,6 +6,7 @@ use tracing::warn; use crate::{IdeviceError, ReadWrite, RemoteXpcClient, RsdService, obf}; /// Client for interacting with the Restore Service +#[derive(Debug)] pub struct RestoreServiceClient { /// The underlying device connection with established Restore Service service pub stream: RemoteXpcClient>, diff --git a/idevice/src/services/screenshotr.rs b/idevice/src/services/screenshotr.rs index 060632e..fc4dec8 100644 --- a/idevice/src/services/screenshotr.rs +++ b/idevice/src/services/screenshotr.rs @@ -7,10 +7,13 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; use std::borrow::Cow; use tokio::io::AsyncReadExt; use tracing::{debug, warn}; + +#[derive(Debug)] pub struct ScreenshotService { /// Underlying device connection pub idevice: Idevice, } + impl IdeviceService for ScreenshotService { fn service_name() -> Cow<'static, str> { obf!("com.apple.mobile.screenshotr") diff --git a/idevice/src/services/simulate_location.rs b/idevice/src/services/simulate_location.rs index dd78f64..b0195c8 100644 --- a/idevice/src/services/simulate_location.rs +++ b/idevice/src/services/simulate_location.rs @@ -1,5 +1,6 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; +#[derive(Debug)] pub struct LocationSimulationService { idevice: Idevice, } diff --git a/idevice/src/services/springboardservices.rs b/idevice/src/services/springboardservices.rs index e8edfec..81a28b4 100644 --- a/idevice/src/services/springboardservices.rs +++ b/idevice/src/services/springboardservices.rs @@ -9,6 +9,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; /// /// This service provides access to home screen and app icon functionality, /// such as retrieving app icons. +#[derive(Debug)] pub struct SpringBoardServicesClient { /// The underlying device connection with established SpringBoard services pub idevice: Idevice, diff --git a/idevice/src/services/syslog_relay.rs b/idevice/src/services/syslog_relay.rs index 0b35380..a2a28d1 100644 --- a/idevice/src/services/syslog_relay.rs +++ b/idevice/src/services/syslog_relay.rs @@ -3,6 +3,7 @@ use crate::{Idevice, IdeviceError, IdeviceService, obf}; /// Client for interacting with the iOS device SyslogRelay service +#[derive(Debug)] pub struct SyslogRelayClient { /// The underlying device connection with established SyslogRelay service pub idevice: Idevice, diff --git a/idevice/src/tcp/packets.rs b/idevice/src/tcp/packets.rs index 591d344..b0cad69 100644 --- a/idevice/src/tcp/packets.rs +++ b/idevice/src/tcp/packets.rs @@ -12,6 +12,7 @@ use tokio::{ }; use tracing::debug; +#[derive(Clone, Copy, Debug)] pub enum ProtocolNumber { Tcp = 6, } diff --git a/idevice/src/usbmuxd/des.rs b/idevice/src/usbmuxd/des.rs index 5d33236..830c386 100644 --- a/idevice/src/usbmuxd/des.rs +++ b/idevice/src/usbmuxd/des.rs @@ -16,7 +16,7 @@ pub struct ListDevicesResponse { pub device_list: Vec, } -#[derive(Deserialize)] +#[derive(Clone, Debug, Deserialize)] pub struct DeviceListResponse { #[serde(rename = "DeviceID")] pub device_id: u32, @@ -24,7 +24,7 @@ pub struct DeviceListResponse { pub properties: DevicePropertiesResponse, } -#[derive(Deserialize)] +#[derive(Clone, Debug, Deserialize)] pub struct DevicePropertiesResponse { #[serde(rename = "ConnectionType")] pub connection_type: String, diff --git a/idevice/src/usbmuxd/mod.rs b/idevice/src/usbmuxd/mod.rs index 7c611cd..2cadc0e 100644 --- a/idevice/src/usbmuxd/mod.rs +++ b/idevice/src/usbmuxd/mod.rs @@ -55,6 +55,7 @@ pub enum UsbmuxdListenEvent { } /// Active connection to the usbmuxd service +#[derive(Debug)] pub struct UsbmuxdConnection { socket: Box, tag: u32, diff --git a/idevice/src/xpc/http2/mod.rs b/idevice/src/xpc/http2/mod.rs index 13f0132..d93d441 100644 --- a/idevice/src/xpc/http2/mod.rs +++ b/idevice/src/xpc/http2/mod.rs @@ -12,6 +12,7 @@ pub use frame::Setting; const HTTP2_MAGIC: &[u8] = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n".as_bytes(); +#[derive(Debug)] pub struct Http2Client { inner: R, cache: HashMap>>, diff --git a/idevice/src/xpc/mod.rs b/idevice/src/xpc/mod.rs index 65b0426..bf22a55 100644 --- a/idevice/src/xpc/mod.rs +++ b/idevice/src/xpc/mod.rs @@ -17,6 +17,7 @@ pub use format::{Dictionary, XPCMessage, XPCObject}; const ROOT_CHANNEL: u32 = 1; const REPLY_CHANNEL: u32 = 3; +#[derive(Debug)] pub struct RemoteXpcClient { h2_client: http2::Http2Client, root_id: u64,