file open tweaks

This commit is contained in:
Robin Appelman 2026-04-15 00:01:05 +02:00
commit b7938bb72e
3 changed files with 110 additions and 358 deletions

443
Cargo.lock generated
View file

@ -123,18 +123,15 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
[[package]] [[package]]
name = "ashpd" name = "ashpd"
version = "0.12.3" version = "0.13.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33a3c86f3fd70c0ffa500ed189abfa90b5a52398a45d5dc372fcc38ebeb7a645" checksum = "3118453e020b8e3e0da25ef9a1d0d51d668874358af11aded9d91a8b9c25f323"
dependencies = [ dependencies = [
"enumflags2", "enumflags2",
"futures-channel",
"futures-util", "futures-util",
"rand 0.9.2", "getrandom 0.4.2",
"serde", "serde",
"serde_repr",
"tokio", "tokio",
"url",
"zbus", "zbus",
] ]
@ -696,7 +693,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.59.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -749,7 +746,7 @@ checksum = "0febbeb1118a9ecdee6e4520ead6b54882e843dd0592ad233247dbee84c53db8"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"smallvec", "smallvec",
"writeable 0.5.5", "writeable",
] ]
[[package]] [[package]]
@ -764,15 +761,6 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
[[package]]
name = "form_urlencoded"
version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
dependencies = [
"percent-encoding",
]
[[package]] [[package]]
name = "fsevent-sys" name = "fsevent-sys"
version = "4.1.0" version = "4.1.0"
@ -788,15 +776,6 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
[[package]]
name = "futures-channel"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
dependencies = [
"futures-core",
]
[[package]] [[package]]
name = "futures-core" name = "futures-core"
version = "0.3.32" version = "0.3.32"
@ -1038,7 +1017,7 @@ checksum = "d1fcc7f316b2c079dde77564a1360639c1a956a23fa96122732e416cb10717bb"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"num-traits", "num-traits",
"rand 0.8.5", "rand",
"static_assertions", "static_assertions",
] ]
@ -1051,17 +1030,17 @@ dependencies = [
"icu_calendar", "icu_calendar",
"icu_casemap", "icu_casemap",
"icu_collator", "icu_collator",
"icu_collections 1.5.0", "icu_collections",
"icu_datetime", "icu_datetime",
"icu_decimal", "icu_decimal",
"icu_experimental", "icu_experimental",
"icu_list", "icu_list",
"icu_locid", "icu_locid",
"icu_locid_transform", "icu_locid_transform",
"icu_normalizer 1.5.0", "icu_normalizer",
"icu_plurals", "icu_plurals",
"icu_properties 1.5.1", "icu_properties",
"icu_provider 1.5.0", "icu_provider",
"icu_segmenter", "icu_segmenter",
"icu_timezone", "icu_timezone",
] ]
@ -1077,10 +1056,10 @@ dependencies = [
"icu_calendar_data", "icu_calendar_data",
"icu_locid", "icu_locid",
"icu_locid_transform", "icu_locid_transform",
"icu_provider 1.5.0", "icu_provider",
"tinystr 0.7.6", "tinystr",
"writeable 0.5.5", "writeable",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1097,12 +1076,12 @@ checksum = "9ff0c8ae9f8d31b12e27fc385ff9ab1f3cd9b17417c665c49e4ec958c37da75f"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"icu_casemap_data", "icu_casemap_data",
"icu_collections 1.5.0", "icu_collections",
"icu_locid", "icu_locid",
"icu_properties 1.5.1", "icu_properties",
"icu_provider 1.5.0", "icu_provider",
"writeable 0.5.5", "writeable",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1119,15 +1098,15 @@ checksum = "d370371887d31d56f361c3eaa15743e54f13bc677059c9191c77e099ed6966b2"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"icu_collator_data", "icu_collator_data",
"icu_collections 1.5.0", "icu_collections",
"icu_locid_transform", "icu_locid_transform",
"icu_normalizer 1.5.0", "icu_normalizer",
"icu_properties 1.5.1", "icu_properties",
"icu_provider 1.5.0", "icu_provider",
"smallvec", "smallvec",
"utf16_iter", "utf16_iter",
"utf8_iter", "utf8_iter",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1143,22 +1122,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"yoke 0.7.5", "yoke",
"zerofrom", "zerofrom",
"zerovec 0.10.4", "zerovec",
]
[[package]]
name = "icu_collections"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
dependencies = [
"displaydoc",
"potential_utf",
"yoke 0.8.2",
"zerofrom",
"zerovec 0.11.6",
] ]
[[package]] [[package]]
@ -1176,12 +1142,12 @@ dependencies = [
"icu_locid", "icu_locid",
"icu_locid_transform", "icu_locid_transform",
"icu_plurals", "icu_plurals",
"icu_provider 1.5.0", "icu_provider",
"icu_timezone", "icu_timezone",
"smallvec", "smallvec",
"tinystr 0.7.6", "tinystr",
"writeable 0.5.5", "writeable",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1200,8 +1166,8 @@ dependencies = [
"fixed_decimal", "fixed_decimal",
"icu_decimal_data", "icu_decimal_data",
"icu_locid_transform", "icu_locid_transform",
"icu_provider 1.5.0", "icu_provider",
"writeable 0.5.5", "writeable",
] ]
[[package]] [[package]]
@ -1218,26 +1184,26 @@ checksum = "844ad7b682a165c758065d694bc4d74ac67f176da1c499a04d85d492c0f193b7"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"fixed_decimal", "fixed_decimal",
"icu_collections 1.5.0", "icu_collections",
"icu_decimal", "icu_decimal",
"icu_experimental_data", "icu_experimental_data",
"icu_locid", "icu_locid",
"icu_locid_transform", "icu_locid_transform",
"icu_normalizer 1.5.0", "icu_normalizer",
"icu_pattern", "icu_pattern",
"icu_plurals", "icu_plurals",
"icu_properties 1.5.1", "icu_properties",
"icu_provider 1.5.0", "icu_provider",
"litemap 0.7.5", "litemap",
"num-bigint", "num-bigint",
"num-rational", "num-rational",
"num-traits", "num-traits",
"smallvec", "smallvec",
"tinystr 0.7.6", "tinystr",
"writeable 0.5.5", "writeable",
"zerofrom", "zerofrom",
"zerotrie 0.1.3", "zerotrie",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1255,9 +1221,9 @@ dependencies = [
"displaydoc", "displaydoc",
"icu_list_data", "icu_list_data",
"icu_locid_transform", "icu_locid_transform",
"icu_provider 1.5.0", "icu_provider",
"regex-automata 0.2.0", "regex-automata 0.2.0",
"writeable 0.5.5", "writeable",
] ]
[[package]] [[package]]
@ -1266,19 +1232,6 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52b1a7fbdbf3958f1be8354cb59ac73f165b7b7082d447ff2090355c9a069120" checksum = "52b1a7fbdbf3958f1be8354cb59ac73f165b7b7082d447ff2090355c9a069120"
[[package]]
name = "icu_locale_core"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
dependencies = [
"displaydoc",
"litemap 0.8.2",
"tinystr 0.8.3",
"writeable 0.6.3",
"zerovec 0.11.6",
]
[[package]] [[package]]
name = "icu_locid" name = "icu_locid"
version = "1.5.0" version = "1.5.0"
@ -1286,10 +1239,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"litemap 0.7.5", "litemap",
"tinystr 0.7.6", "tinystr",
"writeable 0.5.5", "writeable",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1301,9 +1254,9 @@ dependencies = [
"displaydoc", "displaydoc",
"icu_locid", "icu_locid",
"icu_locid_transform_data", "icu_locid_transform_data",
"icu_provider 1.5.0", "icu_provider",
"tinystr 0.7.6", "tinystr",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1319,29 +1272,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"icu_collections 1.5.0", "icu_collections",
"icu_normalizer_data 1.5.1", "icu_normalizer_data",
"icu_properties 1.5.1", "icu_properties",
"icu_provider 1.5.0", "icu_provider",
"smallvec", "smallvec",
"utf16_iter", "utf16_iter",
"utf8_iter", "utf8_iter",
"write16", "write16",
"zerovec 0.10.4", "zerovec",
]
[[package]]
name = "icu_normalizer"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
dependencies = [
"icu_collections 2.1.1",
"icu_normalizer_data 2.1.1",
"icu_properties 2.1.2",
"icu_provider 2.1.1",
"smallvec",
"zerovec 0.11.6",
] ]
[[package]] [[package]]
@ -1350,12 +1289,6 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7"
[[package]]
name = "icu_normalizer_data"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
[[package]] [[package]]
name = "icu_pattern" name = "icu_pattern"
version = "0.2.0" version = "0.2.0"
@ -1364,8 +1297,8 @@ checksum = "cb7f36aafd098d6717de34e668a8120822275c1fba22b936e757b7de8a2fd7e4"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"either", "either",
"writeable 0.5.5", "writeable",
"yoke 0.7.5", "yoke",
"zerofrom", "zerofrom",
] ]
@ -1379,8 +1312,8 @@ dependencies = [
"fixed_decimal", "fixed_decimal",
"icu_locid_transform", "icu_locid_transform",
"icu_plurals_data", "icu_plurals_data",
"icu_provider 1.5.0", "icu_provider",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1396,26 +1329,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"icu_collections 1.5.0", "icu_collections",
"icu_locid_transform", "icu_locid_transform",
"icu_properties_data 1.5.1", "icu_properties_data",
"icu_provider 1.5.0", "icu_provider",
"tinystr 0.7.6", "tinystr",
"zerovec 0.10.4", "zerovec",
]
[[package]]
name = "icu_properties"
version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec"
dependencies = [
"icu_collections 2.1.1",
"icu_locale_core",
"icu_properties_data 2.1.2",
"icu_provider 2.1.1",
"zerotrie 0.2.4",
"zerovec 0.11.6",
] ]
[[package]] [[package]]
@ -1424,12 +1343,6 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2"
[[package]]
name = "icu_properties_data"
version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af"
[[package]] [[package]]
name = "icu_provider" name = "icu_provider"
version = "1.5.0" version = "1.5.0"
@ -1440,26 +1353,11 @@ dependencies = [
"icu_locid", "icu_locid",
"icu_provider_macros", "icu_provider_macros",
"stable_deref_trait", "stable_deref_trait",
"tinystr 0.7.6", "tinystr",
"writeable 0.5.5", "writeable",
"yoke 0.7.5", "yoke",
"zerofrom", "zerofrom",
"zerovec 0.10.4", "zerovec",
]
[[package]]
name = "icu_provider"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
dependencies = [
"displaydoc",
"icu_locale_core",
"writeable 0.6.3",
"yoke 0.8.2",
"zerofrom",
"zerotrie 0.2.4",
"zerovec 0.11.6",
] ]
[[package]] [[package]]
@ -1470,9 +1368,9 @@ checksum = "d6324dfd08348a8e0374a447ebd334044d766b1839bb8d5ccf2482a99a77c0bc"
dependencies = [ dependencies = [
"icu_locid", "icu_locid",
"icu_locid_transform", "icu_locid_transform",
"icu_provider 1.5.0", "icu_provider",
"tinystr 0.7.6", "tinystr",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1494,12 +1392,12 @@ checksum = "a717725612346ffc2d7b42c94b820db6908048f39434504cb130e8b46256b0de"
dependencies = [ dependencies = [
"core_maths", "core_maths",
"displaydoc", "displaydoc",
"icu_collections 1.5.0", "icu_collections",
"icu_locid", "icu_locid",
"icu_provider 1.5.0", "icu_provider",
"icu_segmenter_data", "icu_segmenter_data",
"utf8_iter", "utf8_iter",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1516,11 +1414,11 @@ checksum = "aa91ba6a585939a020c787235daa8aee856d9bceebd6355e283c0c310bc6de96"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"icu_calendar", "icu_calendar",
"icu_provider 1.5.0", "icu_provider",
"icu_timezone_data", "icu_timezone_data",
"tinystr 0.7.6", "tinystr",
"zerotrie 0.1.3", "zerotrie",
"zerovec 0.10.4", "zerovec",
] ]
[[package]] [[package]]
@ -1535,27 +1433,6 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
[[package]]
name = "idna"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
dependencies = [
"idna_adapter",
"smallvec",
"utf8_iter",
]
[[package]]
name = "idna_adapter"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
dependencies = [
"icu_normalizer 2.1.1",
"icu_properties 2.1.2",
]
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "2.13.1" version = "2.13.1"
@ -1781,12 +1658,6 @@ version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
[[package]]
name = "litemap"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0"
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.29" version = "0.4.29"
@ -1971,7 +1842,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [ dependencies = [
"windows-sys 0.59.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -2186,15 +2057,6 @@ dependencies = [
"windows-sys 0.61.2", "windows-sys 0.61.2",
] ]
[[package]]
name = "potential_utf"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564"
dependencies = [
"zerovec 0.11.6",
]
[[package]] [[package]]
name = "powerfmt" name = "powerfmt"
version = "0.2.0" version = "0.2.0"
@ -2343,18 +2205,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [ dependencies = [
"libc", "libc",
"rand_chacha 0.3.1", "rand_chacha",
"rand_core 0.6.4", "rand_core",
]
[[package]]
name = "rand"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
dependencies = [
"rand_chacha 0.9.0",
"rand_core 0.9.5",
] ]
[[package]] [[package]]
@ -2364,17 +2216,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [ dependencies = [
"ppv-lite86", "ppv-lite86",
"rand_core 0.6.4", "rand_core",
]
[[package]]
name = "rand_chacha"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
dependencies = [
"ppv-lite86",
"rand_core 0.9.5",
] ]
[[package]] [[package]]
@ -2386,22 +2228,13 @@ dependencies = [
"getrandom 0.2.16", "getrandom 0.2.16",
] ]
[[package]]
name = "rand_core"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
dependencies = [
"getrandom 0.3.4",
]
[[package]] [[package]]
name = "rand_xoshiro" name = "rand_xoshiro"
version = "0.6.0" version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
dependencies = [ dependencies = [
"rand_core 0.6.4", "rand_core",
] ]
[[package]] [[package]]
@ -2468,8 +2301,8 @@ dependencies = [
"ahash 0.8.12", "ahash 0.8.12",
"enum_dispatch", "enum_dispatch",
"icu_casemap", "icu_casemap",
"icu_collections 1.5.0", "icu_collections",
"icu_properties 1.5.1", "icu_properties",
] ]
[[package]] [[package]]
@ -2520,7 +2353,7 @@ dependencies = [
"borsh", "borsh",
"bytes", "bytes",
"num-traits", "num-traits",
"rand 0.8.5", "rand",
"rkyv", "rkyv",
"serde", "serde",
"serde_json", "serde_json",
@ -2545,7 +2378,7 @@ dependencies = [
"errno", "errno",
"libc", "libc",
"linux-raw-sys", "linux-raw-sys",
"windows-sys 0.59.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -2832,7 +2665,7 @@ dependencies = [
"getrandom 0.4.2", "getrandom 0.4.2",
"once_cell", "once_cell",
"rustix", "rustix",
"windows-sys 0.59.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -2890,17 +2723,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"zerovec 0.10.4", "zerovec",
]
[[package]]
name = "tinystr"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d"
dependencies = [
"displaydoc",
"zerovec 0.11.6",
] ]
[[package]] [[package]]
@ -3083,19 +2906,6 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0976c77def3f1f75c4ef892a292c31c0bbe9e3d0702c63044d7c76db298171a3" checksum = "0976c77def3f1f75c4ef892a292c31c0bbe9e3d0702c63044d7c76db298171a3"
[[package]]
name = "url"
version = "2.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
dependencies = [
"form_urlencoded",
"idna",
"percent-encoding",
"serde",
"serde_derive",
]
[[package]] [[package]]
name = "utf16_iter" name = "utf16_iter"
version = "1.0.5" version = "1.0.5"
@ -3278,7 +3088,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [ dependencies = [
"windows-sys 0.59.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -3727,12 +3537,6 @@ dependencies = [
"either", "either",
] ]
[[package]]
name = "writeable"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
[[package]] [[package]]
name = "wyz" name = "wyz"
version = "0.5.1" version = "0.5.1"
@ -3776,7 +3580,7 @@ dependencies = [
"num-traits", "num-traits",
"ordered-float", "ordered-float",
"percent-encoding", "percent-encoding",
"rand 0.8.5", "rand",
"rand_xoshiro", "rand_xoshiro",
"regexml", "regexml",
"rust_decimal", "rust_decimal",
@ -3958,18 +3762,7 @@ checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"
dependencies = [ dependencies = [
"serde", "serde",
"stable_deref_trait", "stable_deref_trait",
"yoke-derive 0.7.5", "yoke-derive",
"zerofrom",
]
[[package]]
name = "yoke"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca"
dependencies = [
"stable_deref_trait",
"yoke-derive 0.8.2",
"zerofrom", "zerofrom",
] ]
@ -3985,18 +3778,6 @@ dependencies = [
"synstructure", "synstructure",
] ]
[[package]]
name = "yoke-derive"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"synstructure",
]
[[package]] [[package]]
name = "zbus" name = "zbus"
version = "5.13.2" version = "5.13.2"
@ -4107,18 +3888,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb594dd55d87335c5f60177cee24f19457a5ec10a065e0a3014722ad252d0a1f" checksum = "fb594dd55d87335c5f60177cee24f19457a5ec10a065e0a3014722ad252d0a1f"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"yoke 0.7.5", "yoke",
"zerofrom",
]
[[package]]
name = "zerotrie"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf"
dependencies = [
"displaydoc",
"yoke 0.8.2",
"zerofrom", "zerofrom",
] ]
@ -4128,20 +3898,9 @@ version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"
dependencies = [ dependencies = [
"yoke 0.7.5", "yoke",
"zerofrom", "zerofrom",
"zerovec-derive 0.10.3", "zerovec-derive",
]
[[package]]
name = "zerovec"
version = "0.11.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239"
dependencies = [
"yoke 0.8.2",
"zerofrom",
"zerovec-derive 0.11.3",
] ]
[[package]] [[package]]
@ -4155,17 +3914,6 @@ dependencies = [
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "zerovec-derive"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]] [[package]]
name = "zvariant" name = "zvariant"
version = "5.9.2" version = "5.9.2"
@ -4175,7 +3923,6 @@ dependencies = [
"endi", "endi",
"enumflags2", "enumflags2",
"serde", "serde",
"url",
"winnow 0.7.15", "winnow 0.7.15",
"zvariant_derive", "zvariant_derive",
"zvariant_utils", "zvariant_utils",

View file

@ -24,7 +24,7 @@ xee-xpath = "0.1.5"
xee-interpreter = "0.2.0" xee-interpreter = "0.2.0"
notify-rust = "4.13.0" notify-rust = "4.13.0"
tokio = "1.51.0" tokio = "1.51.0"
ashpd = "0.12.3" ashpd = { version = "0.13.9", features = ["open_uri"] }
[dev-dependencies] [dev-dependencies]
maplit = "1.0.2" maplit = "1.0.2"

View file

@ -201,12 +201,12 @@ fn show_notification(source: PathBuf) {
spawn(move || { spawn(move || {
notification.wait_for_action(|action| match action { notification.wait_for_action(|action| match action {
"document-open" => { "document-open" => {
if let Err(error) = open_file(source.clone()) { if let Err(error) = open_file(&source) {
error!(%error, file = %source.display(), "failed to open file from notification"); error!(%error, file = %source.display(), "failed to open file from notification");
} }
} }
"folder-open" => { "folder-open" => {
if let Err(error) = open_file(source.parent().unwrap().into()) { if let Err(error) = open_file(source.parent().unwrap()) {
error!(%error, file = %source.display(), "failed to open parent folder from notification"); error!(%error, file = %source.display(), "failed to open parent folder from notification");
} }
} }
@ -220,15 +220,21 @@ fn show_notification(source: PathBuf) {
} }
} }
fn open_file(path: PathBuf) -> Result<(), ashpd::Error> { fn open_file(path: impl AsRef<Path>) -> Result<(), ashpd::Error> {
let request = open_uri::OpenFileRequest::default().ask(false); let path = path.as_ref().to_owned();
debug!(path = %path.display(), "sending open request");
spawn_tokio_blocking(async move { spawn_tokio_blocking(async move {
match File::open(&path) { match File::open(&path) {
Ok(fd) => { Ok(fd) => {
request let result = if path.is_dir() {
.send_file(&fd) let request = open_uri::OpenDirectoryRequest::default();
.await request.send(&fd).await
.inspect_err(|err| error!("Failed to send open request: {err}"))?; } else {
let request = open_uri::OpenFileRequest::default().ask(false);
request.send_file(&fd).await
};
result.inspect_err(|err| error!("Failed to send open request: {err}"))?;
Ok(()) Ok(())
} }
Err(err) => { Err(err) => {
@ -346,7 +352,6 @@ fn has_duplicate(file: &FileInfo, dir: impl AsRef<Path>) -> Option<PathBuf> {
if file.size == 0 { if file.size == 0 {
return None; return None;
} }
dbg!(file.size);
let dir = match read_dir(dir) { let dir = match read_dir(dir) {
Ok(dir) => dir, Ok(dir) => dir,