diff options
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | Cargo.toml | 29 | ||||
| -rw-r--r-- | Makefile | 12 | ||||
| -rw-r--r-- | README.md | 16 | ||||
| -rw-r--r-- | build-aux/cargo-sources.json | 2673 | ||||
| -rw-r--r-- | build-aux/systems.tranquil.Map.yml | 1872 | ||||
| -rw-r--r-- | clippy.toml | 3 | ||||
| -rw-r--r-- | po/en_US.mo | bin | 13775 -> 0 bytes | |||
| -rw-r--r-- | po/en_US/LC_MESSAGES/systems.tranquil.Map.mo | bin | 13775 -> 0 bytes | |||
| -rw-r--r-- | resources/systems.tranquil.Map.desktop | 2 | ||||
| -rw-r--r-- | src/actions.rs | 4 | ||||
| -rw-r--r-- | src/dialogs.rs | 12 | ||||
| -rw-r--r-- | src/file_registry.rs | 2 | ||||
| -rw-r--r-- | src/handlers/export.rs | 28 | ||||
| -rw-r--r-- | src/handlers/view.rs | 6 | ||||
| -rw-r--r-- | src/i18n.rs | 4 | ||||
| -rw-r--r-- | src/main.rs | 239 | ||||
| -rw-r--r-- | src/preferences/models.rs | 21 | ||||
| -rw-r--r-- | src/preferences/pages/editor.rs | 24 | ||||
| -rw-r--r-- | src/preferences/pages/general.rs | 2 | ||||
| -rw-r--r-- | src/preferences/pages/map.rs | 65 | ||||
| -rw-r--r-- | src/preferences/pages/stages.rs | 72 | ||||
| -rw-r--r-- | src/preferences/pages/templates.rs | 16 | ||||
| -rw-r--r-- | src/preferences/window.rs | 187 | ||||
| -rw-r--r-- | src/stages.rs | 46 |
25 files changed, 3189 insertions, 2149 deletions
@@ -1,2 +1,5 @@ /target /repo +*.mo +builddir +.flatpak-builder @@ -20,3 +20,32 @@ wmap-renderer = "1.1.0" [build-dependencies] relm4-icons-build = "0.10.0" + +[profile.release] +strip = true +lto = true +panic = "abort" + +[package.metadata.generate-rpm] +assets = [ + { source = "target/release/map", dest = "/usr/bin/map", mode = "755" }, + # missing all the other files in resources +] + +[package.metadata.deb] +assets = [ + ["target/release/map", "/usr/bin/map", "755" ], + # missing all the other files in resources +] + +[lints.clippy] +pedantic = { level = "warn", priority = -1 } +all = "deny" +unwrap_used = "deny" +expect_used = "deny" +panic = "deny" +indexing_slicing = "deny" +unreachable = "deny" +undocumented_unsafe_blocks = "deny" +unwrap_in_result = "deny" +ok_expect = "deny" @@ -3,8 +3,9 @@ target = $(shell rustc -vV | grep host | awk '{print $$2}') architectures := x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu app_name := map deploy_host := deploy@build.r.bdr.sh -deploy_path := /srv/http/build.r.bdr.sh/$(app_name) +deploy_path := /srv/http/build.r.bdr.sh/$(app_name)-linux install_path := /usr/local/bin/$(app_name) +flatpak_cargo_generator := $(HOME)/projects/vendor/flatpak-builder-tools/cargo define sign_and_deploy @./scripts/sign.sh "$(1)" "$(channel)" "$(architecture)" @@ -24,7 +25,7 @@ endif # Build ######################################################################## -build: prepare +build: compile_translations prepare @$(eval target_dir := ./target/$(target)/$(profile)/map) cargo build --profile $(profile) --target $(target) @@ -66,7 +67,10 @@ package: $(architectures) release: rpm tar deb @$(eval filename := $(app_name)-$(target)-$(channel)) -flatpak: +update_flatpak_dependencies: + cd $(flatpak_cargo_generator) && `poetry env activate` && python3 flatpak-cargo-generator.py $(CURDIR)/Cargo.lock -o $(CURDIR)/build-aux/cargo-sources.json && deactivate + +flatpak: update_flatpak_dependencies @flatpak-builder --force-clean --user --install-deps-from=flathub --repo=repo --install builddir ./build-aux/systems.tranquil.Map.yml deb: build @@ -112,4 +116,4 @@ else endif -.PHONY: default build $(architectures) rpm package prepare set_rust ci release test coverage format flatpak extract_strings find_translatable_files compile_translations +.PHONY: default build $(architectures) rpm package prepare set_rust ci release test coverage format flatpak update_flatpak_dependencies extract_strings find_translatable_files compile_translations @@ -23,8 +23,17 @@ flatpak. ### Flatpak +Build it with `make flatpak` + Since flatpak expects offline building, we use `flatpak-cargo-generator` to -generate the sources. +generate the sources. This will be done every time you run `make flatpak`. + +The project assumes `flatpak-cargo-generator.py` lives in +`~/projects/vendor/flatpak-builder-tools/cargo`, but you can override this with +the environment variable `flatpak_cargo_generator` (eg. +`make -e flatpak_cargo_generator=~/your/path/to/flatpak_cargo_generator`). It +expects this directory to have the poetry configuration, as it enables the +virtualenv using poetry. ## Localization / Internationalization @@ -35,6 +44,11 @@ with: make extract_strings ``` +This updates the available POTFILES by checking for the presence of the tr! +macro or `gettext`, and extracts the strings to the template file. + +You can then edit the strings using a tool like Poedit. + ## The wmap language Learn more about the language at [map.tranquil.systems][map]. diff --git a/build-aux/cargo-sources.json b/build-aux/cargo-sources.json new file mode 100644 index 0000000..dffaf44 --- /dev/null +++ b/build-aux/cargo-sources.json @@ -0,0 +1,2673 @@ +[ + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/adler2/adler2-2.0.1.crate", + "sha256": "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa", + "dest": "cargo/vendor/adler2-2.0.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa\", \"files\": {}}", + "dest": "cargo/vendor/adler2-2.0.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/aho-corasick/aho-corasick-1.1.4.crate", + "sha256": "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301", + "dest": "cargo/vendor/aho-corasick-1.1.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301\", \"files\": {}}", + "dest": "cargo/vendor/aho-corasick-1.1.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/allocator-api2/allocator-api2-0.2.21.crate", + "sha256": "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923", + "dest": "cargo/vendor/allocator-api2-0.2.21" + }, + { + "type": "inline", + "contents": "{\"package\": \"683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923\", \"files\": {}}", + "dest": "cargo/vendor/allocator-api2-0.2.21", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/approx/approx-0.5.1.crate", + "sha256": "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6", + "dest": "cargo/vendor/approx-0.5.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6\", \"files\": {}}", + "dest": "cargo/vendor/approx-0.5.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/autocfg/autocfg-1.5.0.crate", + "sha256": "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8", + "dest": "cargo/vendor/autocfg-1.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8\", \"files\": {}}", + "dest": "cargo/vendor/autocfg-1.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/bitflags/bitflags-2.10.0.crate", + "sha256": "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3", + "dest": "cargo/vendor/bitflags-2.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3\", \"files\": {}}", + "dest": "cargo/vendor/bitflags-2.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/block/block-0.1.6.crate", + "sha256": "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a", + "dest": "cargo/vendor/block-0.1.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a\", \"files\": {}}", + "dest": "cargo/vendor/block-0.1.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/bumpalo/bumpalo-3.19.1.crate", + "sha256": "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510", + "dest": "cargo/vendor/bumpalo-3.19.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510\", \"files\": {}}", + "dest": "cargo/vendor/bumpalo-3.19.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/byteorder/byteorder-1.5.0.crate", + "sha256": "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b", + "dest": "cargo/vendor/byteorder-1.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\", \"files\": {}}", + "dest": "cargo/vendor/byteorder-1.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cairo-rs/cairo-rs-0.21.5.crate", + "sha256": "b01fe135c0bd16afe262b6dea349bd5ea30e6de50708cec639aae7c5c14cc7e4", + "dest": "cargo/vendor/cairo-rs-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"b01fe135c0bd16afe262b6dea349bd5ea30e6de50708cec639aae7c5c14cc7e4\", \"files\": {}}", + "dest": "cargo/vendor/cairo-rs-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cairo-sys-rs/cairo-sys-rs-0.21.5.crate", + "sha256": "06c28280c6b12055b5e39e4554271ae4e6630b27c0da9148c4cf6485fc6d245c", + "dest": "cargo/vendor/cairo-sys-rs-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"06c28280c6b12055b5e39e4554271ae4e6630b27c0da9148c4cf6485fc6d245c\", \"files\": {}}", + "dest": "cargo/vendor/cairo-sys-rs-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cc/cc-1.2.53.crate", + "sha256": "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932", + "dest": "cargo/vendor/cc-1.2.53" + }, + { + "type": "inline", + "contents": "{\"package\": \"755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932\", \"files\": {}}", + "dest": "cargo/vendor/cc-1.2.53", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cfg-expr/cfg-expr-0.20.5.crate", + "sha256": "21be0e1ce6cdb2ee7fff840f922fb04ead349e5cfb1e750b769132d44ce04720", + "dest": "cargo/vendor/cfg-expr-0.20.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"21be0e1ce6cdb2ee7fff840f922fb04ead349e5cfb1e750b769132d44ce04720\", \"files\": {}}", + "dest": "cargo/vendor/cfg-expr-0.20.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cfg-if/cfg-if-1.0.4.crate", + "sha256": "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801", + "dest": "cargo/vendor/cfg-if-1.0.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\", \"files\": {}}", + "dest": "cargo/vendor/cfg-if-1.0.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/crc32fast/crc32fast-1.5.0.crate", + "sha256": "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511", + "dest": "cargo/vendor/crc32fast-1.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511\", \"files\": {}}", + "dest": "cargo/vendor/crc32fast-1.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.6.crate", + "sha256": "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51", + "dest": "cargo/vendor/crossbeam-deque-0.8.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-deque-0.8.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.18.crate", + "sha256": "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e", + "dest": "cargo/vendor/crossbeam-epoch-0.9.18" + }, + { + "type": "inline", + "contents": "{\"package\": \"5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-epoch-0.9.18", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.21.crate", + "sha256": "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28", + "dest": "cargo/vendor/crossbeam-utils-0.8.21" + }, + { + "type": "inline", + "contents": "{\"package\": \"d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-utils-0.8.21", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dirs/dirs-5.0.1.crate", + "sha256": "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225", + "dest": "cargo/vendor/dirs-5.0.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225\", \"files\": {}}", + "dest": "cargo/vendor/dirs-5.0.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dirs-sys/dirs-sys-0.4.1.crate", + "sha256": "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c", + "dest": "cargo/vendor/dirs-sys-0.4.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c\", \"files\": {}}", + "dest": "cargo/vendor/dirs-sys-0.4.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/earcutr/earcutr-0.4.3.crate", + "sha256": "79127ed59a85d7687c409e9978547cffb7dc79675355ed22da6b66fd5f6ead01", + "dest": "cargo/vendor/earcutr-0.4.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"79127ed59a85d7687c409e9978547cffb7dc79675355ed22da6b66fd5f6ead01\", \"files\": {}}", + "dest": "cargo/vendor/earcutr-0.4.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/either/either-1.15.0.crate", + "sha256": "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719", + "dest": "cargo/vendor/either-1.15.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719\", \"files\": {}}", + "dest": "cargo/vendor/either-1.15.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/endi/endi-1.1.1.crate", + "sha256": "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099", + "dest": "cargo/vendor/endi-1.1.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099\", \"files\": {}}", + "dest": "cargo/vendor/endi-1.1.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/equivalent/equivalent-1.0.2.crate", + "sha256": "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f", + "dest": "cargo/vendor/equivalent-1.0.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\", \"files\": {}}", + "dest": "cargo/vendor/equivalent-1.0.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/errno/errno-0.3.14.crate", + "sha256": "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb", + "dest": "cargo/vendor/errno-0.3.14" + }, + { + "type": "inline", + "contents": "{\"package\": \"39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb\", \"files\": {}}", + "dest": "cargo/vendor/errno-0.3.14", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/fastrand/fastrand-2.3.0.crate", + "sha256": "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be", + "dest": "cargo/vendor/fastrand-2.3.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be\", \"files\": {}}", + "dest": "cargo/vendor/fastrand-2.3.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/field-offset/field-offset-0.3.6.crate", + "sha256": "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f", + "dest": "cargo/vendor/field-offset-0.3.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f\", \"files\": {}}", + "dest": "cargo/vendor/field-offset-0.3.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/find-msvc-tools/find-msvc-tools-0.1.8.crate", + "sha256": "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db", + "dest": "cargo/vendor/find-msvc-tools-0.1.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db\", \"files\": {}}", + "dest": "cargo/vendor/find-msvc-tools-0.1.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/flate2/flate2-1.1.5.crate", + "sha256": "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb", + "dest": "cargo/vendor/flate2-1.1.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb\", \"files\": {}}", + "dest": "cargo/vendor/flate2-1.1.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/float_next_after/float_next_after-1.0.0.crate", + "sha256": "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8", + "dest": "cargo/vendor/float_next_after-1.0.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8\", \"files\": {}}", + "dest": "cargo/vendor/float_next_after-1.0.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/flume/flume-0.11.1.crate", + "sha256": "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095", + "dest": "cargo/vendor/flume-0.11.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095\", \"files\": {}}", + "dest": "cargo/vendor/flume-0.11.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/foldhash/foldhash-0.1.5.crate", + "sha256": "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2", + "dest": "cargo/vendor/foldhash-0.1.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2\", \"files\": {}}", + "dest": "cargo/vendor/foldhash-0.1.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/fragile/fragile-2.0.1.crate", + "sha256": "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619", + "dest": "cargo/vendor/fragile-2.0.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619\", \"files\": {}}", + "dest": "cargo/vendor/fragile-2.0.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures/futures-0.3.31.crate", + "sha256": "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876", + "dest": "cargo/vendor/futures-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876\", \"files\": {}}", + "dest": "cargo/vendor/futures-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.31.crate", + "sha256": "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10", + "dest": "cargo/vendor/futures-channel-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10\", \"files\": {}}", + "dest": "cargo/vendor/futures-channel-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-core/futures-core-0.3.31.crate", + "sha256": "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e", + "dest": "cargo/vendor/futures-core-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e\", \"files\": {}}", + "dest": "cargo/vendor/futures-core-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-executor/futures-executor-0.3.31.crate", + "sha256": "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f", + "dest": "cargo/vendor/futures-executor-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f\", \"files\": {}}", + "dest": "cargo/vendor/futures-executor-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-io/futures-io-0.3.31.crate", + "sha256": "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6", + "dest": "cargo/vendor/futures-io-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6\", \"files\": {}}", + "dest": "cargo/vendor/futures-io-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.31.crate", + "sha256": "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650", + "dest": "cargo/vendor/futures-macro-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650\", \"files\": {}}", + "dest": "cargo/vendor/futures-macro-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-sink/futures-sink-0.3.31.crate", + "sha256": "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7", + "dest": "cargo/vendor/futures-sink-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7\", \"files\": {}}", + "dest": "cargo/vendor/futures-sink-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-task/futures-task-0.3.31.crate", + "sha256": "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988", + "dest": "cargo/vendor/futures-task-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988\", \"files\": {}}", + "dest": "cargo/vendor/futures-task-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-util/futures-util-0.3.31.crate", + "sha256": "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81", + "dest": "cargo/vendor/futures-util-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81\", \"files\": {}}", + "dest": "cargo/vendor/futures-util-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk-pixbuf/gdk-pixbuf-0.21.5.crate", + "sha256": "debb0d39e3cdd84626edfd54d6e4a6ba2da9a0ef2e796e691c4e9f8646fda00c", + "dest": "cargo/vendor/gdk-pixbuf-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"debb0d39e3cdd84626edfd54d6e4a6ba2da9a0ef2e796e691c4e9f8646fda00c\", \"files\": {}}", + "dest": "cargo/vendor/gdk-pixbuf-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk-pixbuf-sys/gdk-pixbuf-sys-0.21.5.crate", + "sha256": "bd95ad50b9a3d2551e25dd4f6892aff0b772fe5372d84514e9d0583af60a0ce7", + "dest": "cargo/vendor/gdk-pixbuf-sys-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"bd95ad50b9a3d2551e25dd4f6892aff0b772fe5372d84514e9d0583af60a0ce7\", \"files\": {}}", + "dest": "cargo/vendor/gdk-pixbuf-sys-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk4/gdk4-0.10.3.crate", + "sha256": "756564212bbe4a4ce05d88ffbd2582581ac6003832d0d32822d0825cca84bfbf", + "dest": "cargo/vendor/gdk4-0.10.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"756564212bbe4a4ce05d88ffbd2582581ac6003832d0d32822d0825cca84bfbf\", \"files\": {}}", + "dest": "cargo/vendor/gdk4-0.10.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk4-sys/gdk4-sys-0.10.3.crate", + "sha256": "a6d4e5b3ccf591826a4adcc83f5f57b4e59d1925cb4bf620b0d645f79498b034", + "dest": "cargo/vendor/gdk4-sys-0.10.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"a6d4e5b3ccf591826a4adcc83f5f57b4e59d1925cb4bf620b0d645f79498b034\", \"files\": {}}", + "dest": "cargo/vendor/gdk4-sys-0.10.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/geo/geo-0.32.0.crate", + "sha256": "3f3901269ec6d4f6068d3f09e5f02f995bd076398dcd1dfec407cd230b02d11b", + "dest": "cargo/vendor/geo-0.32.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"3f3901269ec6d4f6068d3f09e5f02f995bd076398dcd1dfec407cd230b02d11b\", \"files\": {}}", + "dest": "cargo/vendor/geo-0.32.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/geo-types/geo-types-0.7.18.crate", + "sha256": "24f8647af4005fa11da47cd56252c6ef030be8fa97bdbf355e7dfb6348f0a82c", + "dest": "cargo/vendor/geo-types-0.7.18" + }, + { + "type": "inline", + "contents": "{\"package\": \"24f8647af4005fa11da47cd56252c6ef030be8fa97bdbf355e7dfb6348f0a82c\", \"files\": {}}", + "dest": "cargo/vendor/geo-types-0.7.18", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/geographiclib-rs/geographiclib-rs-0.2.5.crate", + "sha256": "f611040a2bb37eaa29a78a128d1e92a378a03e0b6e66ae27398d42b1ba9a7841", + "dest": "cargo/vendor/geographiclib-rs-0.2.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"f611040a2bb37eaa29a78a128d1e92a378a03e0b6e66ae27398d42b1ba9a7841\", \"files\": {}}", + "dest": "cargo/vendor/geographiclib-rs-0.2.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/getrandom/getrandom-0.2.16.crate", + "sha256": "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592", + "dest": "cargo/vendor/getrandom-0.2.16" + }, + { + "type": "inline", + "contents": "{\"package\": \"335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592\", \"files\": {}}", + "dest": "cargo/vendor/getrandom-0.2.16", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/getrandom/getrandom-0.3.4.crate", + "sha256": "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd", + "dest": "cargo/vendor/getrandom-0.3.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd\", \"files\": {}}", + "dest": "cargo/vendor/getrandom-0.3.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gettext-rs/gettext-rs-0.7.7.crate", + "sha256": "5d5857dc1b7f0fee86961de833f434e29494d72af102ce5355738c0664222bdf", + "dest": "cargo/vendor/gettext-rs-0.7.7" + }, + { + "type": "inline", + "contents": "{\"package\": \"5d5857dc1b7f0fee86961de833f434e29494d72af102ce5355738c0664222bdf\", \"files\": {}}", + "dest": "cargo/vendor/gettext-rs-0.7.7", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gettext-sys/gettext-sys-0.26.0.crate", + "sha256": "4ea859ab0dd7e70ff823032b3e077d03d39c965d68c6c10775add60e999d8ee9", + "dest": "cargo/vendor/gettext-sys-0.26.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"4ea859ab0dd7e70ff823032b3e077d03d39c965d68c6c10775add60e999d8ee9\", \"files\": {}}", + "dest": "cargo/vendor/gettext-sys-0.26.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gio/gio-0.21.5.crate", + "sha256": "c5ff48bf600c68b476e61dc6b7c762f2f4eb91deef66583ba8bb815c30b5811a", + "dest": "cargo/vendor/gio-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"c5ff48bf600c68b476e61dc6b7c762f2f4eb91deef66583ba8bb815c30b5811a\", \"files\": {}}", + "dest": "cargo/vendor/gio-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gio-sys/gio-sys-0.21.5.crate", + "sha256": "0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22", + "dest": "cargo/vendor/gio-sys-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22\", \"files\": {}}", + "dest": "cargo/vendor/gio-sys-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/glib/glib-0.21.5.crate", + "sha256": "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b", + "dest": "cargo/vendor/glib-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b\", \"files\": {}}", + "dest": "cargo/vendor/glib-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/glib-macros/glib-macros-0.21.5.crate", + "sha256": "cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17", + "dest": "cargo/vendor/glib-macros-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17\", \"files\": {}}", + "dest": "cargo/vendor/glib-macros-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/glib-sys/glib-sys-0.21.5.crate", + "sha256": "2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c", + "dest": "cargo/vendor/glib-sys-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c\", \"files\": {}}", + "dest": "cargo/vendor/glib-sys-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.21.5.crate", + "sha256": "2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294", + "dest": "cargo/vendor/gobject-sys-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294\", \"files\": {}}", + "dest": "cargo/vendor/gobject-sys-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/graphene-rs/graphene-rs-0.21.5.crate", + "sha256": "2730030ac9db663fd8bfe1e7093742c1cafb92db9c315c9417c29032341fe2f9", + "dest": "cargo/vendor/graphene-rs-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"2730030ac9db663fd8bfe1e7093742c1cafb92db9c315c9417c29032341fe2f9\", \"files\": {}}", + "dest": "cargo/vendor/graphene-rs-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/graphene-sys/graphene-sys-0.21.5.crate", + "sha256": "915e32091ea9ad241e4b044af62b7351c2d68aeb24f489a0d7f37a0fc484fd93", + "dest": "cargo/vendor/graphene-sys-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"915e32091ea9ad241e4b044af62b7351c2d68aeb24f489a0d7f37a0fc484fd93\", \"files\": {}}", + "dest": "cargo/vendor/graphene-sys-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gsk4/gsk4-0.10.3.crate", + "sha256": "e755de9d8c5896c5beaa028b89e1969d067f1b9bf1511384ede971f5983aa153", + "dest": "cargo/vendor/gsk4-0.10.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"e755de9d8c5896c5beaa028b89e1969d067f1b9bf1511384ede971f5983aa153\", \"files\": {}}", + "dest": "cargo/vendor/gsk4-0.10.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gsk4-sys/gsk4-sys-0.10.3.crate", + "sha256": "7ce91472391146f482065f1041876d8f869057b195b95399414caa163d72f4f7", + "dest": "cargo/vendor/gsk4-sys-0.10.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"7ce91472391146f482065f1041876d8f869057b195b95399414caa163d72f4f7\", \"files\": {}}", + "dest": "cargo/vendor/gsk4-sys-0.10.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gtk4/gtk4-0.10.3.crate", + "sha256": "acb21d53cfc6f7bfaf43549731c43b67ca47d87348d81c8cfc4dcdd44828e1a4", + "dest": "cargo/vendor/gtk4-0.10.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"acb21d53cfc6f7bfaf43549731c43b67ca47d87348d81c8cfc4dcdd44828e1a4\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-0.10.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gtk4-macros/gtk4-macros-0.10.3.crate", + "sha256": "3ccfb5a14a3d941244815d5f8101fa12d4577b59cc47245778d8d907b0003e42", + "dest": "cargo/vendor/gtk4-macros-0.10.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"3ccfb5a14a3d941244815d5f8101fa12d4577b59cc47245778d8d907b0003e42\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-macros-0.10.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gtk4-sys/gtk4-sys-0.10.3.crate", + "sha256": "842577fe5a1ee15d166cd3afe804ce0cab6173bc789ca32e21308834f20088dd", + "dest": "cargo/vendor/gtk4-sys-0.10.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"842577fe5a1ee15d166cd3afe804ce0cab6173bc789ca32e21308834f20088dd\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-sys-0.10.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gvdb/gvdb-0.9.0.crate", + "sha256": "b9d94c8a63f94bbc35cf63e105791c5992bd60d4516d41fe5bf3db8d10b30b43", + "dest": "cargo/vendor/gvdb-0.9.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"b9d94c8a63f94bbc35cf63e105791c5992bd60d4516d41fe5bf3db8d10b30b43\", \"files\": {}}", + "dest": "cargo/vendor/gvdb-0.9.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hash32/hash32-0.3.1.crate", + "sha256": "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606", + "dest": "cargo/vendor/hash32-0.3.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606\", \"files\": {}}", + "dest": "cargo/vendor/hash32-0.3.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.15.5.crate", + "sha256": "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1", + "dest": "cargo/vendor/hashbrown-0.15.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1\", \"files\": {}}", + "dest": "cargo/vendor/hashbrown-0.15.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.16.1.crate", + "sha256": "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100", + "dest": "cargo/vendor/hashbrown-0.16.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100\", \"files\": {}}", + "dest": "cargo/vendor/hashbrown-0.16.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/heapless/heapless-0.8.0.crate", + "sha256": "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad", + "dest": "cargo/vendor/heapless-0.8.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad\", \"files\": {}}", + "dest": "cargo/vendor/heapless-0.8.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/heck/heck-0.5.0.crate", + "sha256": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea", + "dest": "cargo/vendor/heck-0.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\", \"files\": {}}", + "dest": "cargo/vendor/heck-0.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/i_float/i_float-1.15.0.crate", + "sha256": "010025c2c532c8d82e42d0b8bb5184afa449fa6f06c709ea9adcb16c49ae405b", + "dest": "cargo/vendor/i_float-1.15.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"010025c2c532c8d82e42d0b8bb5184afa449fa6f06c709ea9adcb16c49ae405b\", \"files\": {}}", + "dest": "cargo/vendor/i_float-1.15.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/i_key_sort/i_key_sort-0.6.0.crate", + "sha256": "9190f86706ca38ac8add223b2aed8b1330002b5cdbbce28fb58b10914d38fc27", + "dest": "cargo/vendor/i_key_sort-0.6.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"9190f86706ca38ac8add223b2aed8b1330002b5cdbbce28fb58b10914d38fc27\", \"files\": {}}", + "dest": "cargo/vendor/i_key_sort-0.6.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/i_overlay/i_overlay-4.0.6.crate", + "sha256": "0fcccbd4e4274e0f80697f5fbc6540fdac533cce02f2081b328e68629cce24f9", + "dest": "cargo/vendor/i_overlay-4.0.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"0fcccbd4e4274e0f80697f5fbc6540fdac533cce02f2081b328e68629cce24f9\", \"files\": {}}", + "dest": "cargo/vendor/i_overlay-4.0.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/i_shape/i_shape-1.14.0.crate", + "sha256": "1ea154b742f7d43dae2897fcd5ead86bc7b5eefcedd305a7ebf9f69d44d61082", + "dest": "cargo/vendor/i_shape-1.14.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"1ea154b742f7d43dae2897fcd5ead86bc7b5eefcedd305a7ebf9f69d44d61082\", \"files\": {}}", + "dest": "cargo/vendor/i_shape-1.14.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/i_tree/i_tree-0.16.0.crate", + "sha256": "35e6d558e6d4c7b82bc51d9c771e7a927862a161a7d87bf2b0541450e0e20915", + "dest": "cargo/vendor/i_tree-0.16.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"35e6d558e6d4c7b82bc51d9c771e7a927862a161a7d87bf2b0541450e0e20915\", \"files\": {}}", + "dest": "cargo/vendor/i_tree-0.16.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/indexmap/indexmap-2.12.1.crate", + "sha256": "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2", + "dest": "cargo/vendor/indexmap-2.12.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2\", \"files\": {}}", + "dest": "cargo/vendor/indexmap-2.12.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/itertools/itertools-0.11.0.crate", + "sha256": "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57", + "dest": "cargo/vendor/itertools-0.11.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57\", \"files\": {}}", + "dest": "cargo/vendor/itertools-0.11.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/itoa/itoa-1.0.16.crate", + "sha256": "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010", + "dest": "cargo/vendor/itoa-1.0.16" + }, + { + "type": "inline", + "contents": "{\"package\": \"7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010\", \"files\": {}}", + "dest": "cargo/vendor/itoa-1.0.16", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/js-sys/js-sys-0.3.83.crate", + "sha256": "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8", + "dest": "cargo/vendor/js-sys-0.3.83" + }, + { + "type": "inline", + "contents": "{\"package\": \"464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8\", \"files\": {}}", + "dest": "cargo/vendor/js-sys-0.3.83", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/lazy_static/lazy_static-1.5.0.crate", + "sha256": "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe", + "dest": "cargo/vendor/lazy_static-1.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe\", \"files\": {}}", + "dest": "cargo/vendor/lazy_static-1.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libc/libc-0.2.178.crate", + "sha256": "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091", + "dest": "cargo/vendor/libc-0.2.178" + }, + { + "type": "inline", + "contents": "{\"package\": \"37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091\", \"files\": {}}", + "dest": "cargo/vendor/libc-0.2.178", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libm/libm-0.2.15.crate", + "sha256": "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de", + "dest": "cargo/vendor/libm-0.2.15" + }, + { + "type": "inline", + "contents": "{\"package\": \"f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de\", \"files\": {}}", + "dest": "cargo/vendor/libm-0.2.15", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libredox/libredox-0.1.12.crate", + "sha256": "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616", + "dest": "cargo/vendor/libredox-0.1.12" + }, + { + "type": "inline", + "contents": "{\"package\": \"3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616\", \"files\": {}}", + "dest": "cargo/vendor/libredox-0.1.12", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/linux-raw-sys/linux-raw-sys-0.11.0.crate", + "sha256": "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039", + "dest": "cargo/vendor/linux-raw-sys-0.11.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039\", \"files\": {}}", + "dest": "cargo/vendor/linux-raw-sys-0.11.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/locale_config/locale_config-0.3.0.crate", + "sha256": "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934", + "dest": "cargo/vendor/locale_config-0.3.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934\", \"files\": {}}", + "dest": "cargo/vendor/locale_config-0.3.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/lock_api/lock_api-0.4.14.crate", + "sha256": "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965", + "dest": "cargo/vendor/lock_api-0.4.14" + }, + { + "type": "inline", + "contents": "{\"package\": \"224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965\", \"files\": {}}", + "dest": "cargo/vendor/lock_api-0.4.14", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/log/log-0.4.29.crate", + "sha256": "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897", + "dest": "cargo/vendor/log-0.4.29" + }, + { + "type": "inline", + "contents": "{\"package\": \"5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897\", \"files\": {}}", + "dest": "cargo/vendor/log-0.4.29", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/malloc_buf/malloc_buf-0.0.6.crate", + "sha256": "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb", + "dest": "cargo/vendor/malloc_buf-0.0.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb\", \"files\": {}}", + "dest": "cargo/vendor/malloc_buf-0.0.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/memchr/memchr-2.7.6.crate", + "sha256": "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273", + "dest": "cargo/vendor/memchr-2.7.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273\", \"files\": {}}", + "dest": "cargo/vendor/memchr-2.7.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/memoffset/memoffset-0.9.1.crate", + "sha256": "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a", + "dest": "cargo/vendor/memoffset-0.9.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a\", \"files\": {}}", + "dest": "cargo/vendor/memoffset-0.9.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.8.9.crate", + "sha256": "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316", + "dest": "cargo/vendor/miniz_oxide-0.8.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316\", \"files\": {}}", + "dest": "cargo/vendor/miniz_oxide-0.8.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/nanorand/nanorand-0.7.0.crate", + "sha256": "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3", + "dest": "cargo/vendor/nanorand-0.7.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3\", \"files\": {}}", + "dest": "cargo/vendor/nanorand-0.7.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/num-traits/num-traits-0.2.19.crate", + "sha256": "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841", + "dest": "cargo/vendor/num-traits-0.2.19" + }, + { + "type": "inline", + "contents": "{\"package\": \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\", \"files\": {}}", + "dest": "cargo/vendor/num-traits-0.2.19", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/objc/objc-0.2.7.crate", + "sha256": "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1", + "dest": "cargo/vendor/objc-0.2.7" + }, + { + "type": "inline", + "contents": "{\"package\": \"915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1\", \"files\": {}}", + "dest": "cargo/vendor/objc-0.2.7", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/objc-foundation/objc-foundation-0.1.1.crate", + "sha256": "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9", + "dest": "cargo/vendor/objc-foundation-0.1.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9\", \"files\": {}}", + "dest": "cargo/vendor/objc-foundation-0.1.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/objc_id/objc_id-0.1.1.crate", + "sha256": "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b", + "dest": "cargo/vendor/objc_id-0.1.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b\", \"files\": {}}", + "dest": "cargo/vendor/objc_id-0.1.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/once_cell/once_cell-1.21.3.crate", + "sha256": "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d", + "dest": "cargo/vendor/once_cell-1.21.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d\", \"files\": {}}", + "dest": "cargo/vendor/once_cell-1.21.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/option-ext/option-ext-0.2.0.crate", + "sha256": "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d", + "dest": "cargo/vendor/option-ext-0.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d\", \"files\": {}}", + "dest": "cargo/vendor/option-ext-0.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pango/pango-0.21.5.crate", + "sha256": "52d1d85e2078077a065bb7fc072783d5bcd4e51b379f22d67107d0a16937eb69", + "dest": "cargo/vendor/pango-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"52d1d85e2078077a065bb7fc072783d5bcd4e51b379f22d67107d0a16937eb69\", \"files\": {}}", + "dest": "cargo/vendor/pango-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pango-sys/pango-sys-0.21.5.crate", + "sha256": "b4f06627d36ed5ff303d2df65211fc2e52ba5b17bf18dd80ff3d9628d6e06cfd", + "dest": "cargo/vendor/pango-sys-0.21.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"b4f06627d36ed5ff303d2df65211fc2e52ba5b17bf18dd80ff3d9628d6e06cfd\", \"files\": {}}", + "dest": "cargo/vendor/pango-sys-0.21.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.16.crate", + "sha256": "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b", + "dest": "cargo/vendor/pin-project-lite-0.2.16" + }, + { + "type": "inline", + "contents": "{\"package\": \"3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b\", \"files\": {}}", + "dest": "cargo/vendor/pin-project-lite-0.2.16", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate", + "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184", + "dest": "cargo/vendor/pin-utils-0.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\", \"files\": {}}", + "dest": "cargo/vendor/pin-utils-0.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pkg-config/pkg-config-0.3.32.crate", + "sha256": "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c", + "dest": "cargo/vendor/pkg-config-0.3.32" + }, + { + "type": "inline", + "contents": "{\"package\": \"7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c\", \"files\": {}}", + "dest": "cargo/vendor/pkg-config-0.3.32", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/ppv-lite86/ppv-lite86-0.2.21.crate", + "sha256": "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9", + "dest": "cargo/vendor/ppv-lite86-0.2.21" + }, + { + "type": "inline", + "contents": "{\"package\": \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\", \"files\": {}}", + "dest": "cargo/vendor/ppv-lite86-0.2.21", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-3.4.0.crate", + "sha256": "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983", + "dest": "cargo/vendor/proc-macro-crate-3.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro-crate-3.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.103.crate", + "sha256": "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8", + "dest": "cargo/vendor/proc-macro2-1.0.103" + }, + { + "type": "inline", + "contents": "{\"package\": \"5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro2-1.0.103", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/quick-xml/quick-xml-0.38.4.crate", + "sha256": "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c", + "dest": "cargo/vendor/quick-xml-0.38.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c\", \"files\": {}}", + "dest": "cargo/vendor/quick-xml-0.38.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/quote/quote-1.0.42.crate", + "sha256": "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f", + "dest": "cargo/vendor/quote-1.0.42" + }, + { + "type": "inline", + "contents": "{\"package\": \"a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f\", \"files\": {}}", + "dest": "cargo/vendor/quote-1.0.42", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/r-efi/r-efi-5.3.0.crate", + "sha256": "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f", + "dest": "cargo/vendor/r-efi-5.3.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f\", \"files\": {}}", + "dest": "cargo/vendor/r-efi-5.3.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rand/rand-0.8.5.crate", + "sha256": "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404", + "dest": "cargo/vendor/rand-0.8.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\", \"files\": {}}", + "dest": "cargo/vendor/rand-0.8.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rand_chacha/rand_chacha-0.3.1.crate", + "sha256": "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88", + "dest": "cargo/vendor/rand_chacha-0.3.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\", \"files\": {}}", + "dest": "cargo/vendor/rand_chacha-0.3.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rand_core/rand_core-0.6.4.crate", + "sha256": "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c", + "dest": "cargo/vendor/rand_core-0.6.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\", \"files\": {}}", + "dest": "cargo/vendor/rand_core-0.6.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rayon/rayon-1.11.0.crate", + "sha256": "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f", + "dest": "cargo/vendor/rayon-1.11.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f\", \"files\": {}}", + "dest": "cargo/vendor/rayon-1.11.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rayon-core/rayon-core-1.13.0.crate", + "sha256": "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91", + "dest": "cargo/vendor/rayon-core-1.13.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91\", \"files\": {}}", + "dest": "cargo/vendor/rayon-core-1.13.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/redox_users/redox_users-0.4.6.crate", + "sha256": "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43", + "dest": "cargo/vendor/redox_users-0.4.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43\", \"files\": {}}", + "dest": "cargo/vendor/redox_users-0.4.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/regex/regex-1.12.2.crate", + "sha256": "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4", + "dest": "cargo/vendor/regex-1.12.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4\", \"files\": {}}", + "dest": "cargo/vendor/regex-1.12.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/regex-automata/regex-automata-0.4.13.crate", + "sha256": "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c", + "dest": "cargo/vendor/regex-automata-0.4.13" + }, + { + "type": "inline", + "contents": "{\"package\": \"5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c\", \"files\": {}}", + "dest": "cargo/vendor/regex-automata-0.4.13", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/regex-syntax/regex-syntax-0.8.8.crate", + "sha256": "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58", + "dest": "cargo/vendor/regex-syntax-0.8.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58\", \"files\": {}}", + "dest": "cargo/vendor/regex-syntax-0.8.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/relm4/relm4-0.10.0.crate", + "sha256": "6bae902de22fd92e62641f047975abf228573425b9b8de175e8ab5b6cda10379", + "dest": "cargo/vendor/relm4-0.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"6bae902de22fd92e62641f047975abf228573425b9b8de175e8ab5b6cda10379\", \"files\": {}}", + "dest": "cargo/vendor/relm4-0.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/relm4-components/relm4-components-0.10.0.crate", + "sha256": "3155d84425d33cdc62929ed2c79bfcfdcb2fff6340c5f7041ed24b56577c9d57", + "dest": "cargo/vendor/relm4-components-0.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"3155d84425d33cdc62929ed2c79bfcfdcb2fff6340c5f7041ed24b56577c9d57\", \"files\": {}}", + "dest": "cargo/vendor/relm4-components-0.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/relm4-css/relm4-css-0.10.0.crate", + "sha256": "37dbe7a114855a22618f0e13595ce6b3f165478c13c2dfc4f4f99614da105797", + "dest": "cargo/vendor/relm4-css-0.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"37dbe7a114855a22618f0e13595ce6b3f165478c13c2dfc4f4f99614da105797\", \"files\": {}}", + "dest": "cargo/vendor/relm4-css-0.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/relm4-icons/relm4-icons-0.10.0.crate", + "sha256": "28869f8322ed72bed568cbb704403037ff62a66c966ded7a862ad5732f108530", + "dest": "cargo/vendor/relm4-icons-0.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"28869f8322ed72bed568cbb704403037ff62a66c966ded7a862ad5732f108530\", \"files\": {}}", + "dest": "cargo/vendor/relm4-icons-0.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/relm4-icons-build/relm4-icons-build-0.10.0.crate", + "sha256": "75f2de558afdd570680a69c96dc9f812b241922c6355dae351f7ffbb5fac675d", + "dest": "cargo/vendor/relm4-icons-build-0.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"75f2de558afdd570680a69c96dc9f812b241922c6355dae351f7ffbb5fac675d\", \"files\": {}}", + "dest": "cargo/vendor/relm4-icons-build-0.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/relm4-macros/relm4-macros-0.10.0.crate", + "sha256": "175fce497fc6f11dde7ea56daa30ff7ad29a534bbc209d59d766659c880ba5f1", + "dest": "cargo/vendor/relm4-macros-0.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"175fce497fc6f11dde7ea56daa30ff7ad29a534bbc209d59d766659c880ba5f1\", \"files\": {}}", + "dest": "cargo/vendor/relm4-macros-0.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/robust/robust-1.2.0.crate", + "sha256": "4e27ee8bb91ca0adcf0ecb116293afa12d393f9c2b9b9cd54d33e8078fe19839", + "dest": "cargo/vendor/robust-1.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"4e27ee8bb91ca0adcf0ecb116293afa12d393f9c2b9b9cd54d33e8078fe19839\", \"files\": {}}", + "dest": "cargo/vendor/robust-1.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rstar/rstar-0.12.2.crate", + "sha256": "421400d13ccfd26dfa5858199c30a5d76f9c54e0dba7575273025b43c5175dbb", + "dest": "cargo/vendor/rstar-0.12.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"421400d13ccfd26dfa5858199c30a5d76f9c54e0dba7575273025b43c5175dbb\", \"files\": {}}", + "dest": "cargo/vendor/rstar-0.12.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rustc-hash/rustc-hash-2.1.1.crate", + "sha256": "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d", + "dest": "cargo/vendor/rustc-hash-2.1.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d\", \"files\": {}}", + "dest": "cargo/vendor/rustc-hash-2.1.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rustc_version/rustc_version-0.4.1.crate", + "sha256": "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92", + "dest": "cargo/vendor/rustc_version-0.4.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92\", \"files\": {}}", + "dest": "cargo/vendor/rustc_version-0.4.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rustix/rustix-1.1.3.crate", + "sha256": "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34", + "dest": "cargo/vendor/rustix-1.1.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34\", \"files\": {}}", + "dest": "cargo/vendor/rustix-1.1.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rustversion/rustversion-1.0.22.crate", + "sha256": "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d", + "dest": "cargo/vendor/rustversion-1.0.22" + }, + { + "type": "inline", + "contents": "{\"package\": \"b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d\", \"files\": {}}", + "dest": "cargo/vendor/rustversion-1.0.22", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/same-file/same-file-1.0.6.crate", + "sha256": "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502", + "dest": "cargo/vendor/same-file-1.0.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\", \"files\": {}}", + "dest": "cargo/vendor/same-file-1.0.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/scopeguard/scopeguard-1.2.0.crate", + "sha256": "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49", + "dest": "cargo/vendor/scopeguard-1.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\", \"files\": {}}", + "dest": "cargo/vendor/scopeguard-1.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/semver/semver-1.0.27.crate", + "sha256": "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2", + "dest": "cargo/vendor/semver-1.0.27" + }, + { + "type": "inline", + "contents": "{\"package\": \"d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2\", \"files\": {}}", + "dest": "cargo/vendor/semver-1.0.27", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde/serde-1.0.228.crate", + "sha256": "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e", + "dest": "cargo/vendor/serde-1.0.228" + }, + { + "type": "inline", + "contents": "{\"package\": \"9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e\", \"files\": {}}", + "dest": "cargo/vendor/serde-1.0.228", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_core/serde_core-1.0.228.crate", + "sha256": "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad", + "dest": "cargo/vendor/serde_core-1.0.228" + }, + { + "type": "inline", + "contents": "{\"package\": \"41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad\", \"files\": {}}", + "dest": "cargo/vendor/serde_core-1.0.228", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.228.crate", + "sha256": "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79", + "dest": "cargo/vendor/serde_derive-1.0.228" + }, + { + "type": "inline", + "contents": "{\"package\": \"d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79\", \"files\": {}}", + "dest": "cargo/vendor/serde_derive-1.0.228", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_json/serde_json-1.0.147.crate", + "sha256": "6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4", + "dest": "cargo/vendor/serde_json-1.0.147" + }, + { + "type": "inline", + "contents": "{\"package\": \"6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4\", \"files\": {}}", + "dest": "cargo/vendor/serde_json-1.0.147", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-1.0.4.crate", + "sha256": "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776", + "dest": "cargo/vendor/serde_spanned-1.0.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776\", \"files\": {}}", + "dest": "cargo/vendor/serde_spanned-1.0.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/shlex/shlex-1.3.0.crate", + "sha256": "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64", + "dest": "cargo/vendor/shlex-1.3.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\", \"files\": {}}", + "dest": "cargo/vendor/shlex-1.3.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/sif-itree/sif-itree-0.4.0.crate", + "sha256": "142099cd6db3c4fab61e5133c62ff80b26674391e195860791fda0b1be3e5080", + "dest": "cargo/vendor/sif-itree-0.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"142099cd6db3c4fab61e5133c62ff80b26674391e195860791fda0b1be3e5080\", \"files\": {}}", + "dest": "cargo/vendor/sif-itree-0.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/simd-adler32/simd-adler32-0.3.8.crate", + "sha256": "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2", + "dest": "cargo/vendor/simd-adler32-0.3.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2\", \"files\": {}}", + "dest": "cargo/vendor/simd-adler32-0.3.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/slab/slab-0.4.11.crate", + "sha256": "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589", + "dest": "cargo/vendor/slab-0.4.11" + }, + { + "type": "inline", + "contents": "{\"package\": \"7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589\", \"files\": {}}", + "dest": "cargo/vendor/slab-0.4.11", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/smallvec/smallvec-1.15.1.crate", + "sha256": "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03", + "dest": "cargo/vendor/smallvec-1.15.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03\", \"files\": {}}", + "dest": "cargo/vendor/smallvec-1.15.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/sourceview5/sourceview5-0.10.0.crate", + "sha256": "6e4acb02162917d7b689c84f4ed710c22302c67c7e61da28a4e8ac548c04442c", + "dest": "cargo/vendor/sourceview5-0.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"6e4acb02162917d7b689c84f4ed710c22302c67c7e61da28a4e8ac548c04442c\", \"files\": {}}", + "dest": "cargo/vendor/sourceview5-0.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/sourceview5-sys/sourceview5-sys-0.10.1.crate", + "sha256": "e1c1529de5df2653788828ef71d44b113bb80e496bc17315f4122106bd6eebae", + "dest": "cargo/vendor/sourceview5-sys-0.10.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"e1c1529de5df2653788828ef71d44b113bb80e496bc17315f4122106bd6eebae\", \"files\": {}}", + "dest": "cargo/vendor/sourceview5-sys-0.10.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/spade/spade-2.15.0.crate", + "sha256": "fb313e1c8afee5b5647e00ee0fe6855e3d529eb863a0fdae1d60006c4d1e9990", + "dest": "cargo/vendor/spade-2.15.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"fb313e1c8afee5b5647e00ee0fe6855e3d529eb863a0fdae1d60006c4d1e9990\", \"files\": {}}", + "dest": "cargo/vendor/spade-2.15.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/spin/spin-0.9.8.crate", + "sha256": "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67", + "dest": "cargo/vendor/spin-0.9.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\", \"files\": {}}", + "dest": "cargo/vendor/spin-0.9.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/stable_deref_trait/stable_deref_trait-1.2.1.crate", + "sha256": "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596", + "dest": "cargo/vendor/stable_deref_trait-1.2.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596\", \"files\": {}}", + "dest": "cargo/vendor/stable_deref_trait-1.2.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/syn/syn-2.0.111.crate", + "sha256": "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87", + "dest": "cargo/vendor/syn-2.0.111" + }, + { + "type": "inline", + "contents": "{\"package\": \"390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87\", \"files\": {}}", + "dest": "cargo/vendor/syn-2.0.111", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/system-deps/system-deps-7.0.7.crate", + "sha256": "48c8f33736f986f16d69b6cb8b03f55ddcad5c41acc4ccc39dd88e84aa805e7f", + "dest": "cargo/vendor/system-deps-7.0.7" + }, + { + "type": "inline", + "contents": "{\"package\": \"48c8f33736f986f16d69b6cb8b03f55ddcad5c41acc4ccc39dd88e84aa805e7f\", \"files\": {}}", + "dest": "cargo/vendor/system-deps-7.0.7", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/target-lexicon/target-lexicon-0.13.3.crate", + "sha256": "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c", + "dest": "cargo/vendor/target-lexicon-0.13.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c\", \"files\": {}}", + "dest": "cargo/vendor/target-lexicon-0.13.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/temp-dir/temp-dir-0.1.16.crate", + "sha256": "83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964", + "dest": "cargo/vendor/temp-dir-0.1.16" + }, + { + "type": "inline", + "contents": "{\"package\": \"83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964\", \"files\": {}}", + "dest": "cargo/vendor/temp-dir-0.1.16", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tempfile/tempfile-3.24.0.crate", + "sha256": "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c", + "dest": "cargo/vendor/tempfile-3.24.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c\", \"files\": {}}", + "dest": "cargo/vendor/tempfile-3.24.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thiserror/thiserror-1.0.69.crate", + "sha256": "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52", + "dest": "cargo/vendor/thiserror-1.0.69" + }, + { + "type": "inline", + "contents": "{\"package\": \"b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-1.0.69", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thiserror/thiserror-2.0.17.crate", + "sha256": "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8", + "dest": "cargo/vendor/thiserror-2.0.17" + }, + { + "type": "inline", + "contents": "{\"package\": \"f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-2.0.17", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.69.crate", + "sha256": "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1", + "dest": "cargo/vendor/thiserror-impl-1.0.69" + }, + { + "type": "inline", + "contents": "{\"package\": \"4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-impl-1.0.69", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-2.0.17.crate", + "sha256": "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913", + "dest": "cargo/vendor/thiserror-impl-2.0.17" + }, + { + "type": "inline", + "contents": "{\"package\": \"3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-impl-2.0.17", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio/tokio-1.48.0.crate", + "sha256": "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408", + "dest": "cargo/vendor/tokio-1.48.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408\", \"files\": {}}", + "dest": "cargo/vendor/tokio-1.48.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml/toml-0.9.10+spec-1.1.0.crate", + "sha256": "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48", + "dest": "cargo/vendor/toml-0.9.10+spec-1.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48\", \"files\": {}}", + "dest": "cargo/vendor/toml-0.9.10+spec-1.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-0.7.5+spec-1.1.0.crate", + "sha256": "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347", + "dest": "cargo/vendor/toml_datetime-0.7.5+spec-1.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347\", \"files\": {}}", + "dest": "cargo/vendor/toml_datetime-0.7.5+spec-1.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.23.10+spec-1.0.0.crate", + "sha256": "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269", + "dest": "cargo/vendor/toml_edit-0.23.10+spec-1.0.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.23.10+spec-1.0.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_parser/toml_parser-1.0.6+spec-1.1.0.crate", + "sha256": "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44", + "dest": "cargo/vendor/toml_parser-1.0.6+spec-1.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44\", \"files\": {}}", + "dest": "cargo/vendor/toml_parser-1.0.6+spec-1.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_writer/toml_writer-1.0.6+spec-1.1.0.crate", + "sha256": "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607", + "dest": "cargo/vendor/toml_writer-1.0.6+spec-1.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607\", \"files\": {}}", + "dest": "cargo/vendor/toml_writer-1.0.6+spec-1.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracing/tracing-0.1.44.crate", + "sha256": "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100", + "dest": "cargo/vendor/tracing-0.1.44" + }, + { + "type": "inline", + "contents": "{\"package\": \"63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100\", \"files\": {}}", + "dest": "cargo/vendor/tracing-0.1.44", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.31.crate", + "sha256": "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da", + "dest": "cargo/vendor/tracing-attributes-0.1.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da\", \"files\": {}}", + "dest": "cargo/vendor/tracing-attributes-0.1.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracing-core/tracing-core-0.1.36.crate", + "sha256": "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a", + "dest": "cargo/vendor/tracing-core-0.1.36" + }, + { + "type": "inline", + "contents": "{\"package\": \"db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a\", \"files\": {}}", + "dest": "cargo/vendor/tracing-core-0.1.36", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracker/tracker-0.2.2.crate", + "sha256": "ce5c98457ff700aaeefcd4a4a492096e78a2af1dd8523c66e94a3adb0fdbd415", + "dest": "cargo/vendor/tracker-0.2.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"ce5c98457ff700aaeefcd4a4a492096e78a2af1dd8523c66e94a3adb0fdbd415\", \"files\": {}}", + "dest": "cargo/vendor/tracker-0.2.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracker-macros/tracker-macros-0.2.2.crate", + "sha256": "dc19eb2373ccf3d1999967c26c3d44534ff71ae5d8b9dacf78f4b13132229e48", + "dest": "cargo/vendor/tracker-macros-0.2.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"dc19eb2373ccf3d1999967c26c3d44534ff71ae5d8b9dacf78f4b13132229e48\", \"files\": {}}", + "dest": "cargo/vendor/tracker-macros-0.2.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.22.crate", + "sha256": "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5", + "dest": "cargo/vendor/unicode-ident-1.0.22" + }, + { + "type": "inline", + "contents": "{\"package\": \"9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5\", \"files\": {}}", + "dest": "cargo/vendor/unicode-ident-1.0.22", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/uuid/uuid-1.19.0.crate", + "sha256": "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a", + "dest": "cargo/vendor/uuid-1.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a\", \"files\": {}}", + "dest": "cargo/vendor/uuid-1.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/version-compare/version-compare-0.2.1.crate", + "sha256": "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e", + "dest": "cargo/vendor/version-compare-0.2.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e\", \"files\": {}}", + "dest": "cargo/vendor/version-compare-0.2.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/walkdir/walkdir-2.5.0.crate", + "sha256": "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b", + "dest": "cargo/vendor/walkdir-2.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b\", \"files\": {}}", + "dest": "cargo/vendor/walkdir-2.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wasi/wasi-0.11.1+wasi-snapshot-preview1.crate", + "sha256": "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b", + "dest": "cargo/vendor/wasi-0.11.1+wasi-snapshot-preview1" + }, + { + "type": "inline", + "contents": "{\"package\": \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\", \"files\": {}}", + "dest": "cargo/vendor/wasi-0.11.1+wasi-snapshot-preview1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wasip2/wasip2-1.0.1+wasi-0.2.4.crate", + "sha256": "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7", + "dest": "cargo/vendor/wasip2-1.0.1+wasi-0.2.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7\", \"files\": {}}", + "dest": "cargo/vendor/wasip2-1.0.1+wasi-0.2.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.106.crate", + "sha256": "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd", + "dest": "cargo/vendor/wasm-bindgen-0.2.106" + }, + { + "type": "inline", + "contents": "{\"package\": \"0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-0.2.106", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.106.crate", + "sha256": "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3", + "dest": "cargo/vendor/wasm-bindgen-macro-0.2.106" + }, + { + "type": "inline", + "contents": "{\"package\": \"48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-macro-0.2.106", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.106.crate", + "sha256": "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40", + "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.106" + }, + { + "type": "inline", + "contents": "{\"package\": \"cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.106", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.106.crate", + "sha256": "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4", + "dest": "cargo/vendor/wasm-bindgen-shared-0.2.106" + }, + { + "type": "inline", + "contents": "{\"package\": \"cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-shared-0.2.106", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winapi/winapi-0.3.9.crate", + "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419", + "dest": "cargo/vendor/winapi-0.3.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\", \"files\": {}}", + "dest": "cargo/vendor/winapi-0.3.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate", + "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6", + "dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\", \"files\": {}}", + "dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winapi-util/winapi-util-0.1.11.crate", + "sha256": "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22", + "dest": "cargo/vendor/winapi-util-0.1.11" + }, + { + "type": "inline", + "contents": "{\"package\": \"c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22\", \"files\": {}}", + "dest": "cargo/vendor/winapi-util-0.1.11", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate", + "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f", + "dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\", \"files\": {}}", + "dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows-link/windows-link-0.2.1.crate", + "sha256": "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5", + "dest": "cargo/vendor/windows-link-0.2.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\", \"files\": {}}", + "dest": "cargo/vendor/windows-link-0.2.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.48.0.crate", + "sha256": "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9", + "dest": "cargo/vendor/windows-sys-0.48.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\", \"files\": {}}", + "dest": "cargo/vendor/windows-sys-0.48.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.61.2.crate", + "sha256": "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc", + "dest": "cargo/vendor/windows-sys-0.61.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc\", \"files\": {}}", + "dest": "cargo/vendor/windows-sys-0.61.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows-targets/windows-targets-0.48.5.crate", + "sha256": "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c", + "dest": "cargo/vendor/windows-targets-0.48.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c\", \"files\": {}}", + "dest": "cargo/vendor/windows-targets-0.48.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.48.5.crate", + "sha256": "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.48.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.48.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.48.5.crate", + "sha256": "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc", + "dest": "cargo/vendor/windows_aarch64_msvc-0.48.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_msvc-0.48.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.48.5.crate", + "sha256": "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e", + "dest": "cargo/vendor/windows_i686_gnu-0.48.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnu-0.48.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.48.5.crate", + "sha256": "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406", + "dest": "cargo/vendor/windows_i686_msvc-0.48.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_msvc-0.48.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.48.5.crate", + "sha256": "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e", + "dest": "cargo/vendor/windows_x86_64_gnu-0.48.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnu-0.48.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.5.crate", + "sha256": "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.48.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.48.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.5.crate", + "sha256": "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538", + "dest": "cargo/vendor/windows_x86_64_msvc-0.48.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_msvc-0.48.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winnow/winnow-0.7.14.crate", + "sha256": "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829", + "dest": "cargo/vendor/winnow-0.7.14" + }, + { + "type": "inline", + "contents": "{\"package\": \"5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829\", \"files\": {}}", + "dest": "cargo/vendor/winnow-0.7.14", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wit-bindgen/wit-bindgen-0.46.0.crate", + "sha256": "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59", + "dest": "cargo/vendor/wit-bindgen-0.46.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59\", \"files\": {}}", + "dest": "cargo/vendor/wit-bindgen-0.46.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wmap-parser/wmap-parser-1.0.0.crate", + "sha256": "c5a2c331c28b392f06cd9d81118a6f73b084708c6ff320457f4cbd75912d499b", + "dest": "cargo/vendor/wmap-parser-1.0.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"c5a2c331c28b392f06cd9d81118a6f73b084708c6ff320457f4cbd75912d499b\", \"files\": {}}", + "dest": "cargo/vendor/wmap-parser-1.0.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wmap-renderer/wmap-renderer-1.1.0.crate", + "sha256": "6eaff4963c129be024d3252a61380f69aa40d927b46fa89eb256eeac72a6a676", + "dest": "cargo/vendor/wmap-renderer-1.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"6eaff4963c129be024d3252a61380f69aa40d927b46fa89eb256eeac72a6a676\", \"files\": {}}", + "dest": "cargo/vendor/wmap-renderer-1.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/zerocopy/zerocopy-0.8.31.crate", + "sha256": "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3", + "dest": "cargo/vendor/zerocopy-0.8.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3\", \"files\": {}}", + "dest": "cargo/vendor/zerocopy-0.8.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.8.31.crate", + "sha256": "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a", + "dest": "cargo/vendor/zerocopy-derive-0.8.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a\", \"files\": {}}", + "dest": "cargo/vendor/zerocopy-derive-0.8.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/zmij/zmij-0.1.9.crate", + "sha256": "d0095ecd462946aa3927d9297b63ef82fb9a5316d7a37d134eeb36e58228615a", + "dest": "cargo/vendor/zmij-0.1.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"d0095ecd462946aa3927d9297b63ef82fb9a5316d7a37d134eeb36e58228615a\", \"files\": {}}", + "dest": "cargo/vendor/zmij-0.1.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/zvariant/zvariant-5.8.0.crate", + "sha256": "2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c", + "dest": "cargo/vendor/zvariant-5.8.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c\", \"files\": {}}", + "dest": "cargo/vendor/zvariant-5.8.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/zvariant_derive/zvariant_derive-5.8.0.crate", + "sha256": "da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006", + "dest": "cargo/vendor/zvariant_derive-5.8.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006\", \"files\": {}}", + "dest": "cargo/vendor/zvariant_derive-5.8.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/zvariant_utils/zvariant_utils-3.2.1.crate", + "sha256": "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599", + "dest": "cargo/vendor/zvariant_utils-3.2.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599\", \"files\": {}}", + "dest": "cargo/vendor/zvariant_utils-3.2.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "inline", + "contents": "[source.vendored-sources]\ndirectory = \"cargo/vendor\"\n\n[source.crates-io]\nreplace-with = \"vendored-sources\"\n", + "dest": "cargo", + "dest-filename": "config" + } +]
\ No newline at end of file diff --git a/build-aux/systems.tranquil.Map.yml b/build-aux/systems.tranquil.Map.yml index 6c6dd40..a5becef 100644 --- a/build-aux/systems.tranquil.Map.yml +++ b/build-aux/systems.tranquil.Map.yml @@ -21,1875 +21,19 @@ modules: build-commands: - cargo --offline fetch --manifest-path Cargo.toml --verbose - cargo build --offline --release --all-features - - install -Dm0755 target/release/map ${FLATPAK_DEST}/bin/${FLATPAK_ID} + - install -Dm0755 target/release/map ${FLATPAK_DEST}/bin/map - install -Dm0644 resources/logo.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/${FLATPAK_ID}.svg - install -Dm0644 resources/${FLATPAK_ID}.desktop ${FLATPAK_DEST}/share/applications/${FLATPAK_ID}.desktop - install -Dm0644 resources/${FLATPAK_ID}.metainfo.xml ${FLATPAK_DEST}/share/metainfo/${FLATPAK_ID}.metainfo.xml - install -Dm0644 resources/${FLATPAK_ID}.service ${FLATPAK_DEST}/share/dbus-1/services/${FLATPAK_ID}.service - install -Dm0644 resources/wmap.lang ${FLATPAK_DEST}/share/gtksourceview-5/language-specs/wmap.lang + - | + for po_file in po/*.po; do + locale=$(basename "$po_file" .po) + mkdir -p ${FLATPAK_DEST}/share/locale/${locale}/LC_MESSAGES + msgfmt "$po_file" -o ${FLATPAK_DEST}/share/locale/${locale}/LC_MESSAGES/${FLATPAK_ID}.mo + done sources: - type: dir path: .. - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/adler2/adler2-2.0.1.crate - sha256: 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa - dest: cargo/vendor/adler2-2.0.1 - - type: inline - contents: '{"package": "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa", - "files": {}}' - dest: cargo/vendor/adler2-2.0.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/allocator-api2/allocator-api2-0.2.21.crate - sha256: 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923 - dest: cargo/vendor/allocator-api2-0.2.21 - - type: inline - contents: '{"package": "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923", - "files": {}}' - dest: cargo/vendor/allocator-api2-0.2.21 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/approx/approx-0.5.1.crate - sha256: cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6 - dest: cargo/vendor/approx-0.5.1 - - type: inline - contents: '{"package": "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6", - "files": {}}' - dest: cargo/vendor/approx-0.5.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/autocfg/autocfg-1.5.0.crate - sha256: c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8 - dest: cargo/vendor/autocfg-1.5.0 - - type: inline - contents: '{"package": "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8", - "files": {}}' - dest: cargo/vendor/autocfg-1.5.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/bitflags/bitflags-2.10.0.crate - sha256: 812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3 - dest: cargo/vendor/bitflags-2.10.0 - - type: inline - contents: '{"package": "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3", - "files": {}}' - dest: cargo/vendor/bitflags-2.10.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/bumpalo/bumpalo-3.19.1.crate - sha256: 5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510 - dest: cargo/vendor/bumpalo-3.19.1 - - type: inline - contents: '{"package": "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510", - "files": {}}' - dest: cargo/vendor/bumpalo-3.19.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/byteorder/byteorder-1.5.0.crate - sha256: 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b - dest: cargo/vendor/byteorder-1.5.0 - - type: inline - contents: '{"package": "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b", - "files": {}}' - dest: cargo/vendor/byteorder-1.5.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/cairo-rs/cairo-rs-0.21.5.crate - sha256: b01fe135c0bd16afe262b6dea349bd5ea30e6de50708cec639aae7c5c14cc7e4 - dest: cargo/vendor/cairo-rs-0.21.5 - - type: inline - contents: '{"package": "b01fe135c0bd16afe262b6dea349bd5ea30e6de50708cec639aae7c5c14cc7e4", - "files": {}}' - dest: cargo/vendor/cairo-rs-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/cairo-sys-rs/cairo-sys-rs-0.21.5.crate - sha256: 06c28280c6b12055b5e39e4554271ae4e6630b27c0da9148c4cf6485fc6d245c - dest: cargo/vendor/cairo-sys-rs-0.21.5 - - type: inline - contents: '{"package": "06c28280c6b12055b5e39e4554271ae4e6630b27c0da9148c4cf6485fc6d245c", - "files": {}}' - dest: cargo/vendor/cairo-sys-rs-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/cfg-expr/cfg-expr-0.20.5.crate - sha256: 21be0e1ce6cdb2ee7fff840f922fb04ead349e5cfb1e750b769132d44ce04720 - dest: cargo/vendor/cfg-expr-0.20.5 - - type: inline - contents: '{"package": "21be0e1ce6cdb2ee7fff840f922fb04ead349e5cfb1e750b769132d44ce04720", - "files": {}}' - dest: cargo/vendor/cfg-expr-0.20.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/cfg-if/cfg-if-1.0.4.crate - sha256: 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801 - dest: cargo/vendor/cfg-if-1.0.4 - - type: inline - contents: '{"package": "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801", - "files": {}}' - dest: cargo/vendor/cfg-if-1.0.4 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/crc32fast/crc32fast-1.5.0.crate - sha256: 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511 - dest: cargo/vendor/crc32fast-1.5.0 - - type: inline - contents: '{"package": "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511", - "files": {}}' - dest: cargo/vendor/crc32fast-1.5.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.6.crate - sha256: 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51 - dest: cargo/vendor/crossbeam-deque-0.8.6 - - type: inline - contents: '{"package": "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51", - "files": {}}' - dest: cargo/vendor/crossbeam-deque-0.8.6 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.18.crate - sha256: 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e - dest: cargo/vendor/crossbeam-epoch-0.9.18 - - type: inline - contents: '{"package": "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e", - "files": {}}' - dest: cargo/vendor/crossbeam-epoch-0.9.18 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.21.crate - sha256: d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28 - dest: cargo/vendor/crossbeam-utils-0.8.21 - - type: inline - contents: '{"package": "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28", - "files": {}}' - dest: cargo/vendor/crossbeam-utils-0.8.21 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/dirs/dirs-5.0.1.crate - sha256: 44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225 - dest: cargo/vendor/dirs-5.0.1 - - type: inline - contents: '{"package": "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225", - "files": {}}' - dest: cargo/vendor/dirs-5.0.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/dirs-sys/dirs-sys-0.4.1.crate - sha256: 520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c - dest: cargo/vendor/dirs-sys-0.4.1 - - type: inline - contents: '{"package": "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c", - "files": {}}' - dest: cargo/vendor/dirs-sys-0.4.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/earcutr/earcutr-0.4.3.crate - sha256: 79127ed59a85d7687c409e9978547cffb7dc79675355ed22da6b66fd5f6ead01 - dest: cargo/vendor/earcutr-0.4.3 - - type: inline - contents: '{"package": "79127ed59a85d7687c409e9978547cffb7dc79675355ed22da6b66fd5f6ead01", - "files": {}}' - dest: cargo/vendor/earcutr-0.4.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/either/either-1.15.0.crate - sha256: 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719 - dest: cargo/vendor/either-1.15.0 - - type: inline - contents: '{"package": "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719", - "files": {}}' - dest: cargo/vendor/either-1.15.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/endi/endi-1.1.1.crate - sha256: 66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099 - dest: cargo/vendor/endi-1.1.1 - - type: inline - contents: '{"package": "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099", - "files": {}}' - dest: cargo/vendor/endi-1.1.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/equivalent/equivalent-1.0.2.crate - sha256: 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f - dest: cargo/vendor/equivalent-1.0.2 - - type: inline - contents: '{"package": "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f", - "files": {}}' - dest: cargo/vendor/equivalent-1.0.2 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/errno/errno-0.3.14.crate - sha256: 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb - dest: cargo/vendor/errno-0.3.14 - - type: inline - contents: '{"package": "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb", - "files": {}}' - dest: cargo/vendor/errno-0.3.14 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/fastrand/fastrand-2.3.0.crate - sha256: 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be - dest: cargo/vendor/fastrand-2.3.0 - - type: inline - contents: '{"package": "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be", - "files": {}}' - dest: cargo/vendor/fastrand-2.3.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/field-offset/field-offset-0.3.6.crate - sha256: 38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f - dest: cargo/vendor/field-offset-0.3.6 - - type: inline - contents: '{"package": "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f", - "files": {}}' - dest: cargo/vendor/field-offset-0.3.6 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/flate2/flate2-1.1.5.crate - sha256: bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb - dest: cargo/vendor/flate2-1.1.5 - - type: inline - contents: '{"package": "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb", - "files": {}}' - dest: cargo/vendor/flate2-1.1.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/float_next_after/float_next_after-1.0.0.crate - sha256: 8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8 - dest: cargo/vendor/float_next_after-1.0.0 - - type: inline - contents: '{"package": "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8", - "files": {}}' - dest: cargo/vendor/float_next_after-1.0.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/flume/flume-0.11.1.crate - sha256: da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095 - dest: cargo/vendor/flume-0.11.1 - - type: inline - contents: '{"package": "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095", - "files": {}}' - dest: cargo/vendor/flume-0.11.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/foldhash/foldhash-0.1.5.crate - sha256: d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2 - dest: cargo/vendor/foldhash-0.1.5 - - type: inline - contents: '{"package": "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2", - "files": {}}' - dest: cargo/vendor/foldhash-0.1.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/fragile/fragile-2.0.1.crate - sha256: 28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619 - dest: cargo/vendor/fragile-2.0.1 - - type: inline - contents: '{"package": "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619", - "files": {}}' - dest: cargo/vendor/fragile-2.0.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures/futures-0.3.31.crate - sha256: 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876 - dest: cargo/vendor/futures-0.3.31 - - type: inline - contents: '{"package": "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876", - "files": {}}' - dest: cargo/vendor/futures-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures-channel/futures-channel-0.3.31.crate - sha256: 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10 - dest: cargo/vendor/futures-channel-0.3.31 - - type: inline - contents: '{"package": "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10", - "files": {}}' - dest: cargo/vendor/futures-channel-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures-core/futures-core-0.3.31.crate - sha256: 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e - dest: cargo/vendor/futures-core-0.3.31 - - type: inline - contents: '{"package": "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e", - "files": {}}' - dest: cargo/vendor/futures-core-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures-executor/futures-executor-0.3.31.crate - sha256: 1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f - dest: cargo/vendor/futures-executor-0.3.31 - - type: inline - contents: '{"package": "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f", - "files": {}}' - dest: cargo/vendor/futures-executor-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures-io/futures-io-0.3.31.crate - sha256: 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6 - dest: cargo/vendor/futures-io-0.3.31 - - type: inline - contents: '{"package": "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6", - "files": {}}' - dest: cargo/vendor/futures-io-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures-macro/futures-macro-0.3.31.crate - sha256: 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650 - dest: cargo/vendor/futures-macro-0.3.31 - - type: inline - contents: '{"package": "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650", - "files": {}}' - dest: cargo/vendor/futures-macro-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures-sink/futures-sink-0.3.31.crate - sha256: e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7 - dest: cargo/vendor/futures-sink-0.3.31 - - type: inline - contents: '{"package": "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7", - "files": {}}' - dest: cargo/vendor/futures-sink-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures-task/futures-task-0.3.31.crate - sha256: f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988 - dest: cargo/vendor/futures-task-0.3.31 - - type: inline - contents: '{"package": "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988", - "files": {}}' - dest: cargo/vendor/futures-task-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/futures-util/futures-util-0.3.31.crate - sha256: 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81 - dest: cargo/vendor/futures-util-0.3.31 - - type: inline - contents: '{"package": "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81", - "files": {}}' - dest: cargo/vendor/futures-util-0.3.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gdk-pixbuf/gdk-pixbuf-0.21.5.crate - sha256: debb0d39e3cdd84626edfd54d6e4a6ba2da9a0ef2e796e691c4e9f8646fda00c - dest: cargo/vendor/gdk-pixbuf-0.21.5 - - type: inline - contents: '{"package": "debb0d39e3cdd84626edfd54d6e4a6ba2da9a0ef2e796e691c4e9f8646fda00c", - "files": {}}' - dest: cargo/vendor/gdk-pixbuf-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gdk-pixbuf-sys/gdk-pixbuf-sys-0.21.5.crate - sha256: bd95ad50b9a3d2551e25dd4f6892aff0b772fe5372d84514e9d0583af60a0ce7 - dest: cargo/vendor/gdk-pixbuf-sys-0.21.5 - - type: inline - contents: '{"package": "bd95ad50b9a3d2551e25dd4f6892aff0b772fe5372d84514e9d0583af60a0ce7", - "files": {}}' - dest: cargo/vendor/gdk-pixbuf-sys-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gdk4/gdk4-0.10.3.crate - sha256: 756564212bbe4a4ce05d88ffbd2582581ac6003832d0d32822d0825cca84bfbf - dest: cargo/vendor/gdk4-0.10.3 - - type: inline - contents: '{"package": "756564212bbe4a4ce05d88ffbd2582581ac6003832d0d32822d0825cca84bfbf", - "files": {}}' - dest: cargo/vendor/gdk4-0.10.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gdk4-sys/gdk4-sys-0.10.3.crate - sha256: a6d4e5b3ccf591826a4adcc83f5f57b4e59d1925cb4bf620b0d645f79498b034 - dest: cargo/vendor/gdk4-sys-0.10.3 - - type: inline - contents: '{"package": "a6d4e5b3ccf591826a4adcc83f5f57b4e59d1925cb4bf620b0d645f79498b034", - "files": {}}' - dest: cargo/vendor/gdk4-sys-0.10.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/geo/geo-0.32.0.crate - sha256: 3f3901269ec6d4f6068d3f09e5f02f995bd076398dcd1dfec407cd230b02d11b - dest: cargo/vendor/geo-0.32.0 - - type: inline - contents: '{"package": "3f3901269ec6d4f6068d3f09e5f02f995bd076398dcd1dfec407cd230b02d11b", - "files": {}}' - dest: cargo/vendor/geo-0.32.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/geo-types/geo-types-0.7.18.crate - sha256: 24f8647af4005fa11da47cd56252c6ef030be8fa97bdbf355e7dfb6348f0a82c - dest: cargo/vendor/geo-types-0.7.18 - - type: inline - contents: '{"package": "24f8647af4005fa11da47cd56252c6ef030be8fa97bdbf355e7dfb6348f0a82c", - "files": {}}' - dest: cargo/vendor/geo-types-0.7.18 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/geographiclib-rs/geographiclib-rs-0.2.5.crate - sha256: f611040a2bb37eaa29a78a128d1e92a378a03e0b6e66ae27398d42b1ba9a7841 - dest: cargo/vendor/geographiclib-rs-0.2.5 - - type: inline - contents: '{"package": "f611040a2bb37eaa29a78a128d1e92a378a03e0b6e66ae27398d42b1ba9a7841", - "files": {}}' - dest: cargo/vendor/geographiclib-rs-0.2.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/getrandom/getrandom-0.2.16.crate - sha256: 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592 - dest: cargo/vendor/getrandom-0.2.16 - - type: inline - contents: '{"package": "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592", - "files": {}}' - dest: cargo/vendor/getrandom-0.2.16 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/getrandom/getrandom-0.3.4.crate - sha256: 899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd - dest: cargo/vendor/getrandom-0.3.4 - - type: inline - contents: '{"package": "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd", - "files": {}}' - dest: cargo/vendor/getrandom-0.3.4 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gio/gio-0.21.5.crate - sha256: c5ff48bf600c68b476e61dc6b7c762f2f4eb91deef66583ba8bb815c30b5811a - dest: cargo/vendor/gio-0.21.5 - - type: inline - contents: '{"package": "c5ff48bf600c68b476e61dc6b7c762f2f4eb91deef66583ba8bb815c30b5811a", - "files": {}}' - dest: cargo/vendor/gio-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gio-sys/gio-sys-0.21.5.crate - sha256: 0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22 - dest: cargo/vendor/gio-sys-0.21.5 - - type: inline - contents: '{"package": "0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22", - "files": {}}' - dest: cargo/vendor/gio-sys-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/glib/glib-0.21.5.crate - sha256: 16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b - dest: cargo/vendor/glib-0.21.5 - - type: inline - contents: '{"package": "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b", - "files": {}}' - dest: cargo/vendor/glib-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/glib-macros/glib-macros-0.21.5.crate - sha256: cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17 - dest: cargo/vendor/glib-macros-0.21.5 - - type: inline - contents: '{"package": "cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17", - "files": {}}' - dest: cargo/vendor/glib-macros-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/glib-sys/glib-sys-0.21.5.crate - sha256: 2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c - dest: cargo/vendor/glib-sys-0.21.5 - - type: inline - contents: '{"package": "2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c", - "files": {}}' - dest: cargo/vendor/glib-sys-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gobject-sys/gobject-sys-0.21.5.crate - sha256: 2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294 - dest: cargo/vendor/gobject-sys-0.21.5 - - type: inline - contents: '{"package": "2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294", - "files": {}}' - dest: cargo/vendor/gobject-sys-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/graphene-rs/graphene-rs-0.21.5.crate - sha256: 2730030ac9db663fd8bfe1e7093742c1cafb92db9c315c9417c29032341fe2f9 - dest: cargo/vendor/graphene-rs-0.21.5 - - type: inline - contents: '{"package": "2730030ac9db663fd8bfe1e7093742c1cafb92db9c315c9417c29032341fe2f9", - "files": {}}' - dest: cargo/vendor/graphene-rs-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/graphene-sys/graphene-sys-0.21.5.crate - sha256: 915e32091ea9ad241e4b044af62b7351c2d68aeb24f489a0d7f37a0fc484fd93 - dest: cargo/vendor/graphene-sys-0.21.5 - - type: inline - contents: '{"package": "915e32091ea9ad241e4b044af62b7351c2d68aeb24f489a0d7f37a0fc484fd93", - "files": {}}' - dest: cargo/vendor/graphene-sys-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gsk4/gsk4-0.10.3.crate - sha256: e755de9d8c5896c5beaa028b89e1969d067f1b9bf1511384ede971f5983aa153 - dest: cargo/vendor/gsk4-0.10.3 - - type: inline - contents: '{"package": "e755de9d8c5896c5beaa028b89e1969d067f1b9bf1511384ede971f5983aa153", - "files": {}}' - dest: cargo/vendor/gsk4-0.10.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gsk4-sys/gsk4-sys-0.10.3.crate - sha256: 7ce91472391146f482065f1041876d8f869057b195b95399414caa163d72f4f7 - dest: cargo/vendor/gsk4-sys-0.10.3 - - type: inline - contents: '{"package": "7ce91472391146f482065f1041876d8f869057b195b95399414caa163d72f4f7", - "files": {}}' - dest: cargo/vendor/gsk4-sys-0.10.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gtk4/gtk4-0.10.3.crate - sha256: acb21d53cfc6f7bfaf43549731c43b67ca47d87348d81c8cfc4dcdd44828e1a4 - dest: cargo/vendor/gtk4-0.10.3 - - type: inline - contents: '{"package": "acb21d53cfc6f7bfaf43549731c43b67ca47d87348d81c8cfc4dcdd44828e1a4", - "files": {}}' - dest: cargo/vendor/gtk4-0.10.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gtk4-macros/gtk4-macros-0.10.3.crate - sha256: 3ccfb5a14a3d941244815d5f8101fa12d4577b59cc47245778d8d907b0003e42 - dest: cargo/vendor/gtk4-macros-0.10.3 - - type: inline - contents: '{"package": "3ccfb5a14a3d941244815d5f8101fa12d4577b59cc47245778d8d907b0003e42", - "files": {}}' - dest: cargo/vendor/gtk4-macros-0.10.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gtk4-sys/gtk4-sys-0.10.3.crate - sha256: 842577fe5a1ee15d166cd3afe804ce0cab6173bc789ca32e21308834f20088dd - dest: cargo/vendor/gtk4-sys-0.10.3 - - type: inline - contents: '{"package": "842577fe5a1ee15d166cd3afe804ce0cab6173bc789ca32e21308834f20088dd", - "files": {}}' - dest: cargo/vendor/gtk4-sys-0.10.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/gvdb/gvdb-0.9.0.crate - sha256: b9d94c8a63f94bbc35cf63e105791c5992bd60d4516d41fe5bf3db8d10b30b43 - dest: cargo/vendor/gvdb-0.9.0 - - type: inline - contents: '{"package": "b9d94c8a63f94bbc35cf63e105791c5992bd60d4516d41fe5bf3db8d10b30b43", - "files": {}}' - dest: cargo/vendor/gvdb-0.9.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/hash32/hash32-0.3.1.crate - sha256: 47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606 - dest: cargo/vendor/hash32-0.3.1 - - type: inline - contents: '{"package": "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606", - "files": {}}' - dest: cargo/vendor/hash32-0.3.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/hashbrown/hashbrown-0.15.5.crate - sha256: 9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1 - dest: cargo/vendor/hashbrown-0.15.5 - - type: inline - contents: '{"package": "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1", - "files": {}}' - dest: cargo/vendor/hashbrown-0.15.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/hashbrown/hashbrown-0.16.1.crate - sha256: 841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100 - dest: cargo/vendor/hashbrown-0.16.1 - - type: inline - contents: '{"package": "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100", - "files": {}}' - dest: cargo/vendor/hashbrown-0.16.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/heapless/heapless-0.8.0.crate - sha256: 0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad - dest: cargo/vendor/heapless-0.8.0 - - type: inline - contents: '{"package": "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad", - "files": {}}' - dest: cargo/vendor/heapless-0.8.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/heck/heck-0.5.0.crate - sha256: 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea - dest: cargo/vendor/heck-0.5.0 - - type: inline - contents: '{"package": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea", - "files": {}}' - dest: cargo/vendor/heck-0.5.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/i_float/i_float-1.15.0.crate - sha256: 010025c2c532c8d82e42d0b8bb5184afa449fa6f06c709ea9adcb16c49ae405b - dest: cargo/vendor/i_float-1.15.0 - - type: inline - contents: '{"package": "010025c2c532c8d82e42d0b8bb5184afa449fa6f06c709ea9adcb16c49ae405b", - "files": {}}' - dest: cargo/vendor/i_float-1.15.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/i_key_sort/i_key_sort-0.6.0.crate - sha256: 9190f86706ca38ac8add223b2aed8b1330002b5cdbbce28fb58b10914d38fc27 - dest: cargo/vendor/i_key_sort-0.6.0 - - type: inline - contents: '{"package": "9190f86706ca38ac8add223b2aed8b1330002b5cdbbce28fb58b10914d38fc27", - "files": {}}' - dest: cargo/vendor/i_key_sort-0.6.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/i_overlay/i_overlay-4.0.6.crate - sha256: 0fcccbd4e4274e0f80697f5fbc6540fdac533cce02f2081b328e68629cce24f9 - dest: cargo/vendor/i_overlay-4.0.6 - - type: inline - contents: '{"package": "0fcccbd4e4274e0f80697f5fbc6540fdac533cce02f2081b328e68629cce24f9", - "files": {}}' - dest: cargo/vendor/i_overlay-4.0.6 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/i_shape/i_shape-1.14.0.crate - sha256: 1ea154b742f7d43dae2897fcd5ead86bc7b5eefcedd305a7ebf9f69d44d61082 - dest: cargo/vendor/i_shape-1.14.0 - - type: inline - contents: '{"package": "1ea154b742f7d43dae2897fcd5ead86bc7b5eefcedd305a7ebf9f69d44d61082", - "files": {}}' - dest: cargo/vendor/i_shape-1.14.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/i_tree/i_tree-0.16.0.crate - sha256: 35e6d558e6d4c7b82bc51d9c771e7a927862a161a7d87bf2b0541450e0e20915 - dest: cargo/vendor/i_tree-0.16.0 - - type: inline - contents: '{"package": "35e6d558e6d4c7b82bc51d9c771e7a927862a161a7d87bf2b0541450e0e20915", - "files": {}}' - dest: cargo/vendor/i_tree-0.16.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/indexmap/indexmap-2.12.1.crate - sha256: 0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2 - dest: cargo/vendor/indexmap-2.12.1 - - type: inline - contents: '{"package": "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2", - "files": {}}' - dest: cargo/vendor/indexmap-2.12.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/itertools/itertools-0.11.0.crate - sha256: b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57 - dest: cargo/vendor/itertools-0.11.0 - - type: inline - contents: '{"package": "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57", - "files": {}}' - dest: cargo/vendor/itertools-0.11.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/itoa/itoa-1.0.16.crate - sha256: 7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010 - dest: cargo/vendor/itoa-1.0.16 - - type: inline - contents: '{"package": "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010", - "files": {}}' - dest: cargo/vendor/itoa-1.0.16 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/js-sys/js-sys-0.3.83.crate - sha256: 464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8 - dest: cargo/vendor/js-sys-0.3.83 - - type: inline - contents: '{"package": "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8", - "files": {}}' - dest: cargo/vendor/js-sys-0.3.83 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/libc/libc-0.2.178.crate - sha256: 37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091 - dest: cargo/vendor/libc-0.2.178 - - type: inline - contents: '{"package": "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091", - "files": {}}' - dest: cargo/vendor/libc-0.2.178 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/libm/libm-0.2.15.crate - sha256: f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de - dest: cargo/vendor/libm-0.2.15 - - type: inline - contents: '{"package": "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de", - "files": {}}' - dest: cargo/vendor/libm-0.2.15 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/libredox/libredox-0.1.12.crate - sha256: 3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616 - dest: cargo/vendor/libredox-0.1.12 - - type: inline - contents: '{"package": "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616", - "files": {}}' - dest: cargo/vendor/libredox-0.1.12 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/linux-raw-sys/linux-raw-sys-0.11.0.crate - sha256: df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039 - dest: cargo/vendor/linux-raw-sys-0.11.0 - - type: inline - contents: '{"package": "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039", - "files": {}}' - dest: cargo/vendor/linux-raw-sys-0.11.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/lock_api/lock_api-0.4.14.crate - sha256: 224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965 - dest: cargo/vendor/lock_api-0.4.14 - - type: inline - contents: '{"package": "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965", - "files": {}}' - dest: cargo/vendor/lock_api-0.4.14 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/log/log-0.4.29.crate - sha256: 5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897 - dest: cargo/vendor/log-0.4.29 - - type: inline - contents: '{"package": "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897", - "files": {}}' - dest: cargo/vendor/log-0.4.29 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/memchr/memchr-2.7.6.crate - sha256: f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273 - dest: cargo/vendor/memchr-2.7.6 - - type: inline - contents: '{"package": "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273", - "files": {}}' - dest: cargo/vendor/memchr-2.7.6 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/memoffset/memoffset-0.9.1.crate - sha256: 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a - dest: cargo/vendor/memoffset-0.9.1 - - type: inline - contents: '{"package": "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a", - "files": {}}' - dest: cargo/vendor/memoffset-0.9.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.8.9.crate - sha256: 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316 - dest: cargo/vendor/miniz_oxide-0.8.9 - - type: inline - contents: '{"package": "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316", - "files": {}}' - dest: cargo/vendor/miniz_oxide-0.8.9 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/nanorand/nanorand-0.7.0.crate - sha256: 6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3 - dest: cargo/vendor/nanorand-0.7.0 - - type: inline - contents: '{"package": "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3", - "files": {}}' - dest: cargo/vendor/nanorand-0.7.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/num-traits/num-traits-0.2.19.crate - sha256: 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 - dest: cargo/vendor/num-traits-0.2.19 - - type: inline - contents: '{"package": "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841", - "files": {}}' - dest: cargo/vendor/num-traits-0.2.19 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/once_cell/once_cell-1.21.3.crate - sha256: 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d - dest: cargo/vendor/once_cell-1.21.3 - - type: inline - contents: '{"package": "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d", - "files": {}}' - dest: cargo/vendor/once_cell-1.21.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/option-ext/option-ext-0.2.0.crate - sha256: 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d - dest: cargo/vendor/option-ext-0.2.0 - - type: inline - contents: '{"package": "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d", - "files": {}}' - dest: cargo/vendor/option-ext-0.2.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/pango/pango-0.21.5.crate - sha256: 52d1d85e2078077a065bb7fc072783d5bcd4e51b379f22d67107d0a16937eb69 - dest: cargo/vendor/pango-0.21.5 - - type: inline - contents: '{"package": "52d1d85e2078077a065bb7fc072783d5bcd4e51b379f22d67107d0a16937eb69", - "files": {}}' - dest: cargo/vendor/pango-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/pango-sys/pango-sys-0.21.5.crate - sha256: b4f06627d36ed5ff303d2df65211fc2e52ba5b17bf18dd80ff3d9628d6e06cfd - dest: cargo/vendor/pango-sys-0.21.5 - - type: inline - contents: '{"package": "b4f06627d36ed5ff303d2df65211fc2e52ba5b17bf18dd80ff3d9628d6e06cfd", - "files": {}}' - dest: cargo/vendor/pango-sys-0.21.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.16.crate - sha256: 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b - dest: cargo/vendor/pin-project-lite-0.2.16 - - type: inline - contents: '{"package": "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b", - "files": {}}' - dest: cargo/vendor/pin-project-lite-0.2.16 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate - sha256: 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 - dest: cargo/vendor/pin-utils-0.1.0 - - type: inline - contents: '{"package": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184", - "files": {}}' - dest: cargo/vendor/pin-utils-0.1.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/pkg-config/pkg-config-0.3.32.crate - sha256: 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c - dest: cargo/vendor/pkg-config-0.3.32 - - type: inline - contents: '{"package": "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c", - "files": {}}' - dest: cargo/vendor/pkg-config-0.3.32 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/ppv-lite86/ppv-lite86-0.2.21.crate - sha256: 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9 - dest: cargo/vendor/ppv-lite86-0.2.21 - - type: inline - contents: '{"package": "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9", - "files": {}}' - dest: cargo/vendor/ppv-lite86-0.2.21 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-3.4.0.crate - sha256: 219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983 - dest: cargo/vendor/proc-macro-crate-3.4.0 - - type: inline - contents: '{"package": "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983", - "files": {}}' - dest: cargo/vendor/proc-macro-crate-3.4.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.103.crate - sha256: 5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8 - dest: cargo/vendor/proc-macro2-1.0.103 - - type: inline - contents: '{"package": "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8", - "files": {}}' - dest: cargo/vendor/proc-macro2-1.0.103 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/quick-xml/quick-xml-0.38.4.crate - sha256: b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c - dest: cargo/vendor/quick-xml-0.38.4 - - type: inline - contents: '{"package": "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c", - "files": {}}' - dest: cargo/vendor/quick-xml-0.38.4 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/quote/quote-1.0.42.crate - sha256: a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f - dest: cargo/vendor/quote-1.0.42 - - type: inline - contents: '{"package": "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f", - "files": {}}' - dest: cargo/vendor/quote-1.0.42 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/r-efi/r-efi-5.3.0.crate - sha256: 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f - dest: cargo/vendor/r-efi-5.3.0 - - type: inline - contents: '{"package": "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f", - "files": {}}' - dest: cargo/vendor/r-efi-5.3.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rand/rand-0.8.5.crate - sha256: 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 - dest: cargo/vendor/rand-0.8.5 - - type: inline - contents: '{"package": "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404", - "files": {}}' - dest: cargo/vendor/rand-0.8.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rand_chacha/rand_chacha-0.3.1.crate - sha256: e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 - dest: cargo/vendor/rand_chacha-0.3.1 - - type: inline - contents: '{"package": "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88", - "files": {}}' - dest: cargo/vendor/rand_chacha-0.3.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rand_core/rand_core-0.6.4.crate - sha256: ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c - dest: cargo/vendor/rand_core-0.6.4 - - type: inline - contents: '{"package": "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c", - "files": {}}' - dest: cargo/vendor/rand_core-0.6.4 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rayon/rayon-1.11.0.crate - sha256: 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f - dest: cargo/vendor/rayon-1.11.0 - - type: inline - contents: '{"package": "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f", - "files": {}}' - dest: cargo/vendor/rayon-1.11.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rayon-core/rayon-core-1.13.0.crate - sha256: 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91 - dest: cargo/vendor/rayon-core-1.13.0 - - type: inline - contents: '{"package": "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91", - "files": {}}' - dest: cargo/vendor/rayon-core-1.13.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/redox_users/redox_users-0.4.6.crate - sha256: ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43 - dest: cargo/vendor/redox_users-0.4.6 - - type: inline - contents: '{"package": "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43", - "files": {}}' - dest: cargo/vendor/redox_users-0.4.6 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/relm4/relm4-0.10.0.crate - sha256: 6bae902de22fd92e62641f047975abf228573425b9b8de175e8ab5b6cda10379 - dest: cargo/vendor/relm4-0.10.0 - - type: inline - contents: '{"package": "6bae902de22fd92e62641f047975abf228573425b9b8de175e8ab5b6cda10379", - "files": {}}' - dest: cargo/vendor/relm4-0.10.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/relm4-components/relm4-components-0.10.0.crate - sha256: 3155d84425d33cdc62929ed2c79bfcfdcb2fff6340c5f7041ed24b56577c9d57 - dest: cargo/vendor/relm4-components-0.10.0 - - type: inline - contents: '{"package": "3155d84425d33cdc62929ed2c79bfcfdcb2fff6340c5f7041ed24b56577c9d57", - "files": {}}' - dest: cargo/vendor/relm4-components-0.10.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/relm4-css/relm4-css-0.10.0.crate - sha256: 37dbe7a114855a22618f0e13595ce6b3f165478c13c2dfc4f4f99614da105797 - dest: cargo/vendor/relm4-css-0.10.0 - - type: inline - contents: '{"package": "37dbe7a114855a22618f0e13595ce6b3f165478c13c2dfc4f4f99614da105797", - "files": {}}' - dest: cargo/vendor/relm4-css-0.10.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/relm4-icons/relm4-icons-0.10.0.crate - sha256: 28869f8322ed72bed568cbb704403037ff62a66c966ded7a862ad5732f108530 - dest: cargo/vendor/relm4-icons-0.10.0 - - type: inline - contents: '{"package": "28869f8322ed72bed568cbb704403037ff62a66c966ded7a862ad5732f108530", - "files": {}}' - dest: cargo/vendor/relm4-icons-0.10.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/relm4-icons-build/relm4-icons-build-0.10.0.crate - sha256: 75f2de558afdd570680a69c96dc9f812b241922c6355dae351f7ffbb5fac675d - dest: cargo/vendor/relm4-icons-build-0.10.0 - - type: inline - contents: '{"package": "75f2de558afdd570680a69c96dc9f812b241922c6355dae351f7ffbb5fac675d", - "files": {}}' - dest: cargo/vendor/relm4-icons-build-0.10.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/relm4-macros/relm4-macros-0.10.0.crate - sha256: 175fce497fc6f11dde7ea56daa30ff7ad29a534bbc209d59d766659c880ba5f1 - dest: cargo/vendor/relm4-macros-0.10.0 - - type: inline - contents: '{"package": "175fce497fc6f11dde7ea56daa30ff7ad29a534bbc209d59d766659c880ba5f1", - "files": {}}' - dest: cargo/vendor/relm4-macros-0.10.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/robust/robust-1.2.0.crate - sha256: 4e27ee8bb91ca0adcf0ecb116293afa12d393f9c2b9b9cd54d33e8078fe19839 - dest: cargo/vendor/robust-1.2.0 - - type: inline - contents: '{"package": "4e27ee8bb91ca0adcf0ecb116293afa12d393f9c2b9b9cd54d33e8078fe19839", - "files": {}}' - dest: cargo/vendor/robust-1.2.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rstar/rstar-0.12.2.crate - sha256: 421400d13ccfd26dfa5858199c30a5d76f9c54e0dba7575273025b43c5175dbb - dest: cargo/vendor/rstar-0.12.2 - - type: inline - contents: '{"package": "421400d13ccfd26dfa5858199c30a5d76f9c54e0dba7575273025b43c5175dbb", - "files": {}}' - dest: cargo/vendor/rstar-0.12.2 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rustc-hash/rustc-hash-2.1.1.crate - sha256: 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d - dest: cargo/vendor/rustc-hash-2.1.1 - - type: inline - contents: '{"package": "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d", - "files": {}}' - dest: cargo/vendor/rustc-hash-2.1.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rustc_version/rustc_version-0.4.1.crate - sha256: cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92 - dest: cargo/vendor/rustc_version-0.4.1 - - type: inline - contents: '{"package": "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92", - "files": {}}' - dest: cargo/vendor/rustc_version-0.4.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rustix/rustix-1.1.3.crate - sha256: 146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34 - dest: cargo/vendor/rustix-1.1.3 - - type: inline - contents: '{"package": "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34", - "files": {}}' - dest: cargo/vendor/rustix-1.1.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/rustversion/rustversion-1.0.22.crate - sha256: b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d - dest: cargo/vendor/rustversion-1.0.22 - - type: inline - contents: '{"package": "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d", - "files": {}}' - dest: cargo/vendor/rustversion-1.0.22 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/same-file/same-file-1.0.6.crate - sha256: 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 - dest: cargo/vendor/same-file-1.0.6 - - type: inline - contents: '{"package": "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502", - "files": {}}' - dest: cargo/vendor/same-file-1.0.6 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/scopeguard/scopeguard-1.2.0.crate - sha256: 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 - dest: cargo/vendor/scopeguard-1.2.0 - - type: inline - contents: '{"package": "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49", - "files": {}}' - dest: cargo/vendor/scopeguard-1.2.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/semver/semver-1.0.27.crate - sha256: d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2 - dest: cargo/vendor/semver-1.0.27 - - type: inline - contents: '{"package": "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2", - "files": {}}' - dest: cargo/vendor/semver-1.0.27 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/serde/serde-1.0.228.crate - sha256: 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e - dest: cargo/vendor/serde-1.0.228 - - type: inline - contents: '{"package": "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e", - "files": {}}' - dest: cargo/vendor/serde-1.0.228 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/serde_core/serde_core-1.0.228.crate - sha256: 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad - dest: cargo/vendor/serde_core-1.0.228 - - type: inline - contents: '{"package": "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad", - "files": {}}' - dest: cargo/vendor/serde_core-1.0.228 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/serde_derive/serde_derive-1.0.228.crate - sha256: d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79 - dest: cargo/vendor/serde_derive-1.0.228 - - type: inline - contents: '{"package": "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79", - "files": {}}' - dest: cargo/vendor/serde_derive-1.0.228 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/serde_json/serde_json-1.0.147.crate - sha256: 6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4 - dest: cargo/vendor/serde_json-1.0.147 - - type: inline - contents: '{"package": "6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4", - "files": {}}' - dest: cargo/vendor/serde_json-1.0.147 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/serde_spanned/serde_spanned-1.0.4.crate - sha256: f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776 - dest: cargo/vendor/serde_spanned-1.0.4 - - type: inline - contents: '{"package": "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776", - "files": {}}' - dest: cargo/vendor/serde_spanned-1.0.4 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/sif-itree/sif-itree-0.4.0.crate - sha256: 142099cd6db3c4fab61e5133c62ff80b26674391e195860791fda0b1be3e5080 - dest: cargo/vendor/sif-itree-0.4.0 - - type: inline - contents: '{"package": "142099cd6db3c4fab61e5133c62ff80b26674391e195860791fda0b1be3e5080", - "files": {}}' - dest: cargo/vendor/sif-itree-0.4.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/simd-adler32/simd-adler32-0.3.8.crate - sha256: e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2 - dest: cargo/vendor/simd-adler32-0.3.8 - - type: inline - contents: '{"package": "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2", - "files": {}}' - dest: cargo/vendor/simd-adler32-0.3.8 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/slab/slab-0.4.11.crate - sha256: 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589 - dest: cargo/vendor/slab-0.4.11 - - type: inline - contents: '{"package": "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589", - "files": {}}' - dest: cargo/vendor/slab-0.4.11 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/smallvec/smallvec-1.15.1.crate - sha256: 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03 - dest: cargo/vendor/smallvec-1.15.1 - - type: inline - contents: '{"package": "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03", - "files": {}}' - dest: cargo/vendor/smallvec-1.15.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/sourceview5/sourceview5-0.10.0.crate - sha256: 6e4acb02162917d7b689c84f4ed710c22302c67c7e61da28a4e8ac548c04442c - dest: cargo/vendor/sourceview5-0.10.0 - - type: inline - contents: '{"package": "6e4acb02162917d7b689c84f4ed710c22302c67c7e61da28a4e8ac548c04442c", - "files": {}}' - dest: cargo/vendor/sourceview5-0.10.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/sourceview5-sys/sourceview5-sys-0.10.1.crate - sha256: e1c1529de5df2653788828ef71d44b113bb80e496bc17315f4122106bd6eebae - dest: cargo/vendor/sourceview5-sys-0.10.1 - - type: inline - contents: '{"package": "e1c1529de5df2653788828ef71d44b113bb80e496bc17315f4122106bd6eebae", - "files": {}}' - dest: cargo/vendor/sourceview5-sys-0.10.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/spade/spade-2.15.0.crate - sha256: fb313e1c8afee5b5647e00ee0fe6855e3d529eb863a0fdae1d60006c4d1e9990 - dest: cargo/vendor/spade-2.15.0 - - type: inline - contents: '{"package": "fb313e1c8afee5b5647e00ee0fe6855e3d529eb863a0fdae1d60006c4d1e9990", - "files": {}}' - dest: cargo/vendor/spade-2.15.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/spin/spin-0.9.8.crate - sha256: 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67 - dest: cargo/vendor/spin-0.9.8 - - type: inline - contents: '{"package": "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67", - "files": {}}' - dest: cargo/vendor/spin-0.9.8 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/stable_deref_trait/stable_deref_trait-1.2.1.crate - sha256: 6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596 - dest: cargo/vendor/stable_deref_trait-1.2.1 - - type: inline - contents: '{"package": "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596", - "files": {}}' - dest: cargo/vendor/stable_deref_trait-1.2.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/syn/syn-2.0.111.crate - sha256: 390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87 - dest: cargo/vendor/syn-2.0.111 - - type: inline - contents: '{"package": "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87", - "files": {}}' - dest: cargo/vendor/syn-2.0.111 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/system-deps/system-deps-7.0.7.crate - sha256: 48c8f33736f986f16d69b6cb8b03f55ddcad5c41acc4ccc39dd88e84aa805e7f - dest: cargo/vendor/system-deps-7.0.7 - - type: inline - contents: '{"package": "48c8f33736f986f16d69b6cb8b03f55ddcad5c41acc4ccc39dd88e84aa805e7f", - "files": {}}' - dest: cargo/vendor/system-deps-7.0.7 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/target-lexicon/target-lexicon-0.13.3.crate - sha256: df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c - dest: cargo/vendor/target-lexicon-0.13.3 - - type: inline - contents: '{"package": "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c", - "files": {}}' - dest: cargo/vendor/target-lexicon-0.13.3 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/tempfile/tempfile-3.24.0.crate - sha256: 655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c - dest: cargo/vendor/tempfile-3.24.0 - - type: inline - contents: '{"package": "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c", - "files": {}}' - dest: cargo/vendor/tempfile-3.24.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/thiserror/thiserror-1.0.69.crate - sha256: b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 - dest: cargo/vendor/thiserror-1.0.69 - - type: inline - contents: '{"package": "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52", - "files": {}}' - dest: cargo/vendor/thiserror-1.0.69 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/thiserror/thiserror-2.0.17.crate - sha256: f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8 - dest: cargo/vendor/thiserror-2.0.17 - - type: inline - contents: '{"package": "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8", - "files": {}}' - dest: cargo/vendor/thiserror-2.0.17 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.69.crate - sha256: 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 - dest: cargo/vendor/thiserror-impl-1.0.69 - - type: inline - contents: '{"package": "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1", - "files": {}}' - dest: cargo/vendor/thiserror-impl-1.0.69 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/thiserror-impl/thiserror-impl-2.0.17.crate - sha256: 3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913 - dest: cargo/vendor/thiserror-impl-2.0.17 - - type: inline - contents: '{"package": "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913", - "files": {}}' - dest: cargo/vendor/thiserror-impl-2.0.17 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/tokio/tokio-1.48.0.crate - sha256: ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408 - dest: cargo/vendor/tokio-1.48.0 - - type: inline - contents: '{"package": "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408", - "files": {}}' - dest: cargo/vendor/tokio-1.48.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/toml/toml-0.9.10+spec-1.1.0.crate - sha256: 0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48 - dest: cargo/vendor/toml-0.9.10+spec-1.1.0 - - type: inline - contents: '{"package": "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48", - "files": {}}' - dest: cargo/vendor/toml-0.9.10+spec-1.1.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/toml_datetime/toml_datetime-0.7.5+spec-1.1.0.crate - sha256: 92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347 - dest: cargo/vendor/toml_datetime-0.7.5+spec-1.1.0 - - type: inline - contents: '{"package": "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347", - "files": {}}' - dest: cargo/vendor/toml_datetime-0.7.5+spec-1.1.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/toml_edit/toml_edit-0.23.10+spec-1.0.0.crate - sha256: 84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269 - dest: cargo/vendor/toml_edit-0.23.10+spec-1.0.0 - - type: inline - contents: '{"package": "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269", - "files": {}}' - dest: cargo/vendor/toml_edit-0.23.10+spec-1.0.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/toml_parser/toml_parser-1.0.6+spec-1.1.0.crate - sha256: a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44 - dest: cargo/vendor/toml_parser-1.0.6+spec-1.1.0 - - type: inline - contents: '{"package": "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44", - "files": {}}' - dest: cargo/vendor/toml_parser-1.0.6+spec-1.1.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/toml_writer/toml_writer-1.0.6+spec-1.1.0.crate - sha256: ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607 - dest: cargo/vendor/toml_writer-1.0.6+spec-1.1.0 - - type: inline - contents: '{"package": "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607", - "files": {}}' - dest: cargo/vendor/toml_writer-1.0.6+spec-1.1.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/tracing/tracing-0.1.44.crate - sha256: 63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100 - dest: cargo/vendor/tracing-0.1.44 - - type: inline - contents: '{"package": "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100", - "files": {}}' - dest: cargo/vendor/tracing-0.1.44 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.31.crate - sha256: 7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da - dest: cargo/vendor/tracing-attributes-0.1.31 - - type: inline - contents: '{"package": "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da", - "files": {}}' - dest: cargo/vendor/tracing-attributes-0.1.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/tracing-core/tracing-core-0.1.36.crate - sha256: db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a - dest: cargo/vendor/tracing-core-0.1.36 - - type: inline - contents: '{"package": "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a", - "files": {}}' - dest: cargo/vendor/tracing-core-0.1.36 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/tracker/tracker-0.2.2.crate - sha256: ce5c98457ff700aaeefcd4a4a492096e78a2af1dd8523c66e94a3adb0fdbd415 - dest: cargo/vendor/tracker-0.2.2 - - type: inline - contents: '{"package": "ce5c98457ff700aaeefcd4a4a492096e78a2af1dd8523c66e94a3adb0fdbd415", - "files": {}}' - dest: cargo/vendor/tracker-0.2.2 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/tracker-macros/tracker-macros-0.2.2.crate - sha256: dc19eb2373ccf3d1999967c26c3d44534ff71ae5d8b9dacf78f4b13132229e48 - dest: cargo/vendor/tracker-macros-0.2.2 - - type: inline - contents: '{"package": "dc19eb2373ccf3d1999967c26c3d44534ff71ae5d8b9dacf78f4b13132229e48", - "files": {}}' - dest: cargo/vendor/tracker-macros-0.2.2 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.22.crate - sha256: 9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5 - dest: cargo/vendor/unicode-ident-1.0.22 - - type: inline - contents: '{"package": "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5", - "files": {}}' - dest: cargo/vendor/unicode-ident-1.0.22 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/uuid/uuid-1.19.0.crate - sha256: e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a - dest: cargo/vendor/uuid-1.19.0 - - type: inline - contents: '{"package": "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a", - "files": {}}' - dest: cargo/vendor/uuid-1.19.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/version-compare/version-compare-0.2.1.crate - sha256: 03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e - dest: cargo/vendor/version-compare-0.2.1 - - type: inline - contents: '{"package": "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e", - "files": {}}' - dest: cargo/vendor/version-compare-0.2.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/walkdir/walkdir-2.5.0.crate - sha256: 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b - dest: cargo/vendor/walkdir-2.5.0 - - type: inline - contents: '{"package": "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b", - "files": {}}' - dest: cargo/vendor/walkdir-2.5.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wasi/wasi-0.11.1+wasi-snapshot-preview1.crate - sha256: ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b - dest: cargo/vendor/wasi-0.11.1+wasi-snapshot-preview1 - - type: inline - contents: '{"package": "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b", - "files": {}}' - dest: cargo/vendor/wasi-0.11.1+wasi-snapshot-preview1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wasip2/wasip2-1.0.1+wasi-0.2.4.crate - sha256: 0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7 - dest: cargo/vendor/wasip2-1.0.1+wasi-0.2.4 - - type: inline - contents: '{"package": "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7", - "files": {}}' - dest: cargo/vendor/wasip2-1.0.1+wasi-0.2.4 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.106.crate - sha256: 0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd - dest: cargo/vendor/wasm-bindgen-0.2.106 - - type: inline - contents: '{"package": "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd", - "files": {}}' - dest: cargo/vendor/wasm-bindgen-0.2.106 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.106.crate - sha256: 48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3 - dest: cargo/vendor/wasm-bindgen-macro-0.2.106 - - type: inline - contents: '{"package": "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3", - "files": {}}' - dest: cargo/vendor/wasm-bindgen-macro-0.2.106 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.106.crate - sha256: cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40 - dest: cargo/vendor/wasm-bindgen-macro-support-0.2.106 - - type: inline - contents: '{"package": "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40", - "files": {}}' - dest: cargo/vendor/wasm-bindgen-macro-support-0.2.106 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.106.crate - sha256: cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4 - dest: cargo/vendor/wasm-bindgen-shared-0.2.106 - - type: inline - contents: '{"package": "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4", - "files": {}}' - dest: cargo/vendor/wasm-bindgen-shared-0.2.106 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/winapi-util/winapi-util-0.1.11.crate - sha256: c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22 - dest: cargo/vendor/winapi-util-0.1.11 - - type: inline - contents: '{"package": "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22", - "files": {}}' - dest: cargo/vendor/winapi-util-0.1.11 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows-link/windows-link-0.2.1.crate - sha256: f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5 - dest: cargo/vendor/windows-link-0.2.1 - - type: inline - contents: '{"package": "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5", - "files": {}}' - dest: cargo/vendor/windows-link-0.2.1 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows-sys/windows-sys-0.48.0.crate - sha256: 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9 - dest: cargo/vendor/windows-sys-0.48.0 - - type: inline - contents: '{"package": "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9", - "files": {}}' - dest: cargo/vendor/windows-sys-0.48.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows-sys/windows-sys-0.61.2.crate - sha256: ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc - dest: cargo/vendor/windows-sys-0.61.2 - - type: inline - contents: '{"package": "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc", - "files": {}}' - dest: cargo/vendor/windows-sys-0.61.2 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows-targets/windows-targets-0.48.5.crate - sha256: 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c - dest: cargo/vendor/windows-targets-0.48.5 - - type: inline - contents: '{"package": "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c", - "files": {}}' - dest: cargo/vendor/windows-targets-0.48.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.48.5.crate - sha256: 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8 - dest: cargo/vendor/windows_aarch64_gnullvm-0.48.5 - - type: inline - contents: '{"package": "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8", - "files": {}}' - dest: cargo/vendor/windows_aarch64_gnullvm-0.48.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.48.5.crate - sha256: dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc - dest: cargo/vendor/windows_aarch64_msvc-0.48.5 - - type: inline - contents: '{"package": "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc", - "files": {}}' - dest: cargo/vendor/windows_aarch64_msvc-0.48.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.48.5.crate - sha256: a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e - dest: cargo/vendor/windows_i686_gnu-0.48.5 - - type: inline - contents: '{"package": "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e", - "files": {}}' - dest: cargo/vendor/windows_i686_gnu-0.48.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.48.5.crate - sha256: 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406 - dest: cargo/vendor/windows_i686_msvc-0.48.5 - - type: inline - contents: '{"package": "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406", - "files": {}}' - dest: cargo/vendor/windows_i686_msvc-0.48.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.48.5.crate - sha256: 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e - dest: cargo/vendor/windows_x86_64_gnu-0.48.5 - - type: inline - contents: '{"package": "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e", - "files": {}}' - dest: cargo/vendor/windows_x86_64_gnu-0.48.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.5.crate - sha256: 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc - dest: cargo/vendor/windows_x86_64_gnullvm-0.48.5 - - type: inline - contents: '{"package": "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc", - "files": {}}' - dest: cargo/vendor/windows_x86_64_gnullvm-0.48.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.5.crate - sha256: ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538 - dest: cargo/vendor/windows_x86_64_msvc-0.48.5 - - type: inline - contents: '{"package": "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538", - "files": {}}' - dest: cargo/vendor/windows_x86_64_msvc-0.48.5 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/winnow/winnow-0.7.14.crate - sha256: 5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829 - dest: cargo/vendor/winnow-0.7.14 - - type: inline - contents: '{"package": "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829", - "files": {}}' - dest: cargo/vendor/winnow-0.7.14 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wit-bindgen/wit-bindgen-0.46.0.crate - sha256: f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59 - dest: cargo/vendor/wit-bindgen-0.46.0 - - type: inline - contents: '{"package": "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59", - "files": {}}' - dest: cargo/vendor/wit-bindgen-0.46.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wmap-parser/wmap-parser-1.0.0.crate - sha256: c5a2c331c28b392f06cd9d81118a6f73b084708c6ff320457f4cbd75912d499b - dest: cargo/vendor/wmap-parser-1.0.0 - - type: inline - contents: '{"package": "c5a2c331c28b392f06cd9d81118a6f73b084708c6ff320457f4cbd75912d499b", - "files": {}}' - dest: cargo/vendor/wmap-parser-1.0.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/wmap-renderer/wmap-renderer-1.1.0.crate - sha256: 6eaff4963c129be024d3252a61380f69aa40d927b46fa89eb256eeac72a6a676 - dest: cargo/vendor/wmap-renderer-1.1.0 - - type: inline - contents: '{"package": "6eaff4963c129be024d3252a61380f69aa40d927b46fa89eb256eeac72a6a676", - "files": {}}' - dest: cargo/vendor/wmap-renderer-1.1.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/zerocopy/zerocopy-0.8.31.crate - sha256: fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3 - dest: cargo/vendor/zerocopy-0.8.31 - - type: inline - contents: '{"package": "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3", - "files": {}}' - dest: cargo/vendor/zerocopy-0.8.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.8.31.crate - sha256: d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a - dest: cargo/vendor/zerocopy-derive-0.8.31 - - type: inline - contents: '{"package": "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a", - "files": {}}' - dest: cargo/vendor/zerocopy-derive-0.8.31 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/zmij/zmij-0.1.9.crate - sha256: d0095ecd462946aa3927d9297b63ef82fb9a5316d7a37d134eeb36e58228615a - dest: cargo/vendor/zmij-0.1.9 - - type: inline - contents: '{"package": "d0095ecd462946aa3927d9297b63ef82fb9a5316d7a37d134eeb36e58228615a", - "files": {}}' - dest: cargo/vendor/zmij-0.1.9 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/zvariant/zvariant-5.8.0.crate - sha256: 2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c - dest: cargo/vendor/zvariant-5.8.0 - - type: inline - contents: '{"package": "2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c", - "files": {}}' - dest: cargo/vendor/zvariant-5.8.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/zvariant_derive/zvariant_derive-5.8.0.crate - sha256: da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006 - dest: cargo/vendor/zvariant_derive-5.8.0 - - type: inline - contents: '{"package": "da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006", - "files": {}}' - dest: cargo/vendor/zvariant_derive-5.8.0 - dest-filename: .cargo-checksum.json - - type: archive - archive-type: tar-gzip - url: https://static.crates.io/crates/zvariant_utils/zvariant_utils-3.2.1.crate - sha256: c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599 - dest: cargo/vendor/zvariant_utils-3.2.1 - - type: inline - contents: '{"package": "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599", - "files": {}}' - dest: cargo/vendor/zvariant_utils-3.2.1 - dest-filename: .cargo-checksum.json - - type: inline - contents: '[source.vendored-sources] - - directory = "cargo/vendor" - - - [source.crates-io] - - replace-with = "vendored-sources" - - ' - dest: cargo - dest-filename: config + - cargo-sources.json diff --git a/clippy.toml b/clippy.toml new file mode 100644 index 0000000..4c47523 --- /dev/null +++ b/clippy.toml @@ -0,0 +1,3 @@ +allow-panic-in-tests = true +allow-unwrap-in-tests = true +allow-expect-in-tests = true diff --git a/po/en_US.mo b/po/en_US.mo Binary files differdeleted file mode 100644 index 9daf8c8..0000000 --- a/po/en_US.mo +++ /dev/null diff --git a/po/en_US/LC_MESSAGES/systems.tranquil.Map.mo b/po/en_US/LC_MESSAGES/systems.tranquil.Map.mo Binary files differdeleted file mode 100644 index 9daf8c8..0000000 --- a/po/en_US/LC_MESSAGES/systems.tranquil.Map.mo +++ /dev/null diff --git a/resources/systems.tranquil.Map.desktop b/resources/systems.tranquil.Map.desktop index 53337d8..f76d73a 100644 --- a/resources/systems.tranquil.Map.desktop +++ b/resources/systems.tranquil.Map.desktop @@ -5,7 +5,7 @@ GenericName=Wardley Map Editor Comment=Wardley Map Editor for Linux Categories=GNOME;GTK;Graphics;Utility; Icon=systems.tranquil.Map -Exec=systems.tranquil.Map %u +Exec=map %u Terminal=false Keywords=wardley;wmap;maps;editor;wardley maps;wardley mapping; X-GNOME-Gettext-Domain=systems.tranquil.Map diff --git a/src/actions.rs b/src/actions.rs index 859d559..fdea125 100644 --- a/src/actions.rs +++ b/src/actions.rs @@ -25,14 +25,14 @@ pub enum ImageFormat { } impl ImageFormat { - pub fn extension(&self) -> &'static str { + pub fn extension(self) -> &'static str { match self { ImageFormat::Png => "png", ImageFormat::Svg => "svg", } } - pub fn mime_type(&self) -> &'static str { + pub fn mime_type(self) -> &'static str { match self { ImageFormat::Png => "image/png", ImageFormat::Svg => "image/svg+xml", diff --git a/src/dialogs.rs b/src/dialogs.rs index 8f5b951..41b8c86 100644 --- a/src/dialogs.rs +++ b/src/dialogs.rs @@ -94,7 +94,7 @@ pub fn show_open_dialog( /// Shows a file save dialog and handles the response. pub fn show_save_dialog( window: >k::Window, - current_file: Option<PathBuf>, + current_file: Option<&PathBuf>, close_after: bool, sender: ComponentSender<AppModel>, ) { @@ -110,7 +110,7 @@ pub fn show_save_dialog( dialog.add_filter(&create_file_filter()); let default_filename = "map.wmap"; - if let Some(ref current_path) = current_file { + if let Some(current_path) = current_file { if let Some(parent) = current_path.parent() { let folder = gtk::gio::File::for_path(parent); dialog.set_current_folder(Some(&folder)).ok(); @@ -191,7 +191,7 @@ fn create_image_filter(format: ImageFormat) -> gtk::FileFilter { /// Shows an export image dialog and handles the response. pub fn show_export_dialog( window: >k::Window, - current_file: Option<PathBuf>, + current_file: Option<&PathBuf>, sender: ComponentSender<AppModel>, ) { let dialog = gtk::FileChooserDialog::new( @@ -217,13 +217,13 @@ pub fn show_export_dialog( .unwrap_or("map") .to_string(); - if let Some(ref current_path) = current_file + if let Some(current_path) = current_file && let Some(parent) = current_path.parent() { let folder = gtk::gio::File::for_path(parent); dialog.set_current_folder(Some(&folder)).ok(); } - dialog.set_current_name(&format!("{}.png", base_name)); + dialog.set_current_name(&format!("{base_name}.png")); // Update extension when filter changes { @@ -235,7 +235,7 @@ pub fn show_export_dialog( } else { "svg" }; - dialog.set_current_name(&format!("{}.{}", base_name_clone, ext)); + dialog.set_current_name(&format!("{base_name_clone}.{ext}")); }); } diff --git a/src/file_registry.rs b/src/file_registry.rs index 73299f6..749697d 100644 --- a/src/file_registry.rs +++ b/src/file_registry.rs @@ -78,7 +78,7 @@ pub fn register_sender(sender: relm4::Sender<Action>) { } /// Broadcasts a message to all windows via their registered senders. -pub fn broadcast_to_all_windows(message: Action) { +pub fn broadcast_to_all_windows(message: &Action) { WINDOW_SENDERS.with_borrow(|senders| { for sender in senders { sender.emit(message.clone()); diff --git a/src/handlers/export.rs b/src/handlers/export.rs index a0a4451..bf9dfc5 100644 --- a/src/handlers/export.rs +++ b/src/handlers/export.rs @@ -18,23 +18,27 @@ use std::path::PathBuf; use crate::AppModel; use crate::actions::ImageFormat; use crate::dialogs; -use crate::tr; use crate::stages::LocalizedStageType; +use crate::tr; use wmap_renderer::{render_to_png, render_to_svg}; /// Exports the map to an image file in the specified format. -pub fn export_to_file(model: &AppModel, path: PathBuf, format: ImageFormat) { +pub fn export_to_file(model: &AppModel, path: &PathBuf, format: ImageFormat) { let result: Result<(), String> = match format { - ImageFormat::Png => { - render_to_png(&model.map, &model.stage_type.to_localized(), &model.render_configuration) - .map_err(|e| e.to_string()) - .and_then(|data| std::fs::write(&path, data).map_err(|e| e.to_string())) - } - ImageFormat::Svg => { - render_to_svg(&model.map, &model.stage_type.to_localized(), &model.render_configuration) - .map_err(|e| e.to_string()) - .and_then(|data| std::fs::write(&path, data).map_err(|e| e.to_string())) - } + ImageFormat::Png => render_to_png( + &model.map, + &model.stage_type.to_localized(), + &model.render_configuration, + ) + .map_err(|e| e.to_string()) + .and_then(|data| std::fs::write(path, data).map_err(|e| e.to_string())), + ImageFormat::Svg => render_to_svg( + &model.map, + &model.stage_type.to_localized(), + &model.render_configuration, + ) + .map_err(|e| e.to_string()) + .and_then(|data| std::fs::write(path, data).map_err(|e| e.to_string())), }; if let Err(error) = result { diff --git a/src/handlers/view.rs b/src/handlers/view.rs index 58d44b2..660f7b9 100644 --- a/src/handlers/view.rs +++ b/src/handlers/view.rs @@ -27,8 +27,10 @@ pub fn change_orientation(model: &mut AppModel) { /// Updates the selected stage type from dropdown selection. pub fn stage_type_selected(model: &mut AppModel, index: usize) { - if index < model.available_stage_types.len() { - model.stage_type = model.available_stage_types[index].clone(); + if index < model.available_stage_types.len() + && let Some(stage_type) = model.available_stage_types.get(index) + { + model.stage_type = stage_type.clone(); model.update_image(); } } diff --git a/src/i18n.rs b/src/i18n.rs index 1c574e0..35955a1 100644 --- a/src/i18n.rs +++ b/src/i18n.rs @@ -16,7 +16,7 @@ //! Internationalization support using gettext. -use gettextrs::{bindtextdomain, setlocale, textdomain, LocaleCategory}; +use gettextrs::{LocaleCategory, bindtextdomain, setlocale, textdomain}; /// The gettext domain for the application. pub const GETTEXT_DOMAIN: &str = "systems.tranquil.Map"; @@ -43,7 +43,7 @@ pub fn init() { } } - textdomain(GETTEXT_DOMAIN).expect("Failed to set gettext domain"); + textdomain(GETTEXT_DOMAIN).ok(); } /// Macro for translating strings at runtime. diff --git a/src/main.rs b/src/main.rs index c15ffc2..4feef3b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,6 +28,7 @@ mod stages; mod ui_helpers; mod icon_names { + #![allow(clippy::doc_markdown)] // Generated code from relm4_icons_build include!(concat!(env!("OUT_DIR"), "/icon_names.rs")); } @@ -93,7 +94,7 @@ macro_rules! register_action { }}; } -fn setup_actions(window: gtk::Window, sender: ComponentSender<AppModel>) { +fn setup_actions(window: >k::Window, sender: &ComponentSender<AppModel>) { let application = relm4::main_application(); let mut action_group = RelmActionGroup::<WindowActionGroup>::new(); @@ -179,11 +180,12 @@ fn setup_actions(window: gtk::Window, sender: ComponentSender<AppModel>) { ); let sender = sender.clone(); - let action: RelmAction<NewFromTemplateAction> = RelmAction::new_with_target_value(move |_, template_id| { - sender.input(Action::NewFromTemplateById(template_id)) - }); + let action: RelmAction<NewFromTemplateAction> = + RelmAction::new_with_target_value(move |_, template_id| { + sender.input(Action::NewFromTemplateById(template_id)); + }); action_group.add_action(action); - action_group.register_for_widget(&window); + action_group.register_for_widget(window); } struct AppInit { @@ -219,12 +221,15 @@ struct AppModel { } impl AppModel { + #[allow(clippy::cast_possible_truncation)] fn update_image(&mut self) { - if let Ok(surface) = - render_to_surface(&self.map, &self.stage_type.to_localized(), &self.render_configuration) - { - self.surface_width = (surface.width() as f64 * self.zoom).round() as i32; - self.surface_height = (surface.height() as f64 * self.zoom).round() as i32; + if let Ok(surface) = render_to_surface( + &self.map, + &self.stage_type.to_localized(), + &self.render_configuration, + ) { + self.surface_width = (f64::from(surface.width()) * self.zoom).round() as i32; + self.surface_height = (f64::from(surface.height()) * self.zoom).round() as i32; self.surface = surface; let zoom = self.zoom; @@ -272,6 +277,7 @@ impl AppModel { self.source.set_text(content); } + #[allow(clippy::cast_possible_truncation)] fn apply_preferences(&mut self) { self.source_view .set_wrap_mode(if self.preferences.soft_wrap_lines { @@ -325,8 +331,7 @@ impl AppModel { } for stage_type in &stage_types { - self.stage_type_list - .append(&stage_type.localized_name()); + self.stage_type_list.append(&stage_type.localized_name()); } self.available_stage_types = stage_types; @@ -337,7 +342,7 @@ impl AppModel { for template in &self.preferences.map_templates { self.templates_menu.append( Some(&template.name), - Some(&format!("window.new-from-template::{}", template.id)) + Some(&format!("window.new-from-template::{}", template.id)), ); } } @@ -358,6 +363,121 @@ impl AppModel { file_registry::store_controller(controller); } + + fn init_stage_type_list() -> gtk::StringList { + let stage_types: Vec<String> = ALL_STAGE_TYPES + .iter() + .map(stages::LocalizedStageType::localized_name) + .collect(); + let stage_type_refs: Vec<&str> = stage_types + .iter() + .map(std::string::String::as_str) + .collect(); + gtk::StringList::new(&stage_type_refs) + } + + fn init_source_buffer( + init: &AppInit, + sender: &ComponentSender<Self>, + ) -> (sourceview5::Buffer, String, Option<PathBuf>) { + let source = sourceview5::Buffer::new(None); + source.set_highlight_syntax(true); + + let language_manager = LanguageManager::default(); + if let Some(language) = language_manager.language("wmap") { + source.set_language(Some(&language)); + } + + let (initial_content, current_file) = if let Some(ref path) = init.file_path { + match std::fs::read_to_string(path) { + Ok(content) => (content, Some(path.clone())), + Err(_) => (String::new(), None), + } + } else { + (init.initial_content.clone().unwrap_or_default(), None) + }; + + source.set_text(&initial_content); + + { + let sender = sender.clone(); + source.connect_changed(move |_| { + sender.input(Action::SourceChanged); + }); + } + + (source, initial_content, current_file) + } + + fn init_drawing_area( + initial_content: &str, + ) -> ( + gtk::DrawingArea, + Map, + Configuration, + StageType, + ImageSurface, + ) { + let drawing_area = gtk::DrawingArea::new(); + let map = parse(initial_content); + let mut render_configuration = Configuration::default(); + let stage_type = StageType::Activities; + render_configuration.options.smart_label_positioning = true; + let surface = render_to_surface(&map, &stage_type.to_localized(), &render_configuration) + .or_else(|_| ImageSurface::create(cairo::Format::ARgb32, 1, 1)) + .unwrap_or_else(|e| { + eprintln!("Fatal: Cairo failed to create surface: {e}"); + std::process::exit(1); + }); + + (drawing_area, map, render_configuration, stage_type, surface) + } + + fn init_main_menu(prefs: &preferences::UserPreferences) -> (gio::Menu, gio::Menu) { + let templates_menu = gio::Menu::new(); + for template in &prefs.map_templates { + templates_menu.append( + Some(&template.name), + Some(&format!("window.new-from-template::{}", template.id)), + ); + } + + let main_menu = gio::Menu::new(); + main_menu.append(Some(&tr!("command.file.new")), Some("window.new")); + main_menu.append_submenu( + Some(&tr!("command.file.new_from_template")), + &templates_menu, + ); + main_menu.append(Some(&tr!("command.file.open")), Some("window.open")); + main_menu.append(Some(&tr!("command.file.save")), Some("window.save")); + main_menu.append(Some(&tr!("command.file.save_as")), Some("window.save-as")); + main_menu.append(Some(&tr!("command.file.close")), Some("window.close")); + main_menu.append( + Some(&tr!("command.file.export")), + Some("window.export-image"), + ); + + let layout_section = gio::Menu::new(); + layout_section.append( + Some(&tr!("command.view.use_vertical_layout")), + Some("window.change-orientation"), + ); + main_menu.append_section(None, &layout_section); + + let zoom_section = gio::Menu::new(); + zoom_section.append(Some(&tr!("command.view.zoom_in")), Some("window.zoom-in")); + zoom_section.append(Some(&tr!("command.view.zoom_out")), Some("window.zoom-out")); + main_menu.append_section(None, &zoom_section); + + let prefs_section = gio::Menu::new(); + prefs_section.append( + Some(&tr!("command.application.preferences")), + Some("window.preferences"), + ); + main_menu.append_section(None, &prefs_section); + + (templates_menu, main_menu) + } } #[relm4::component] @@ -496,40 +616,11 @@ impl SimpleComponent for AppModel { root: Self::Root, sender: ComponentSender<Self>, ) -> ComponentParts<Self> { - let stage_types: Vec<String> = ALL_STAGE_TYPES - .iter() - .map(|stage_type| stage_type.localized_name()) - .collect(); - let stage_type_refs: Vec<&str> = stage_types.iter().map(|s| s.as_str()).collect(); - let stage_type_list = gtk::StringList::new(&stage_type_refs); + let stage_type_list = Self::init_stage_type_list(); - let source = sourceview5::Buffer::new(None); - source.set_highlight_syntax(true); - - let language_manager = LanguageManager::default(); - if let Some(language) = language_manager.language("wmap") { - source.set_language(Some(&language)); - } - - let (initial_content, current_file) = if let Some(ref path) = init.file_path { - match std::fs::read_to_string(path) { - Ok(content) => (content, Some(path.clone())), - Err(_) => (String::new(), None), - } - } else { - (init.initial_content.unwrap_or_default(), None) - }; - - source.set_text(&initial_content); - - { - let sender = sender.clone(); - source.connect_changed(move |_| { - sender.input(Action::SourceChanged); - }); - } + let (source, initial_content, current_file) = Self::init_source_buffer(&init, &sender); - setup_actions(root.clone(), sender.clone()); + setup_actions(&root, &sender); let source_view = sourceview5::View::with_buffer(&source); source_view.set_monospace(true); @@ -540,55 +631,15 @@ impl SimpleComponent for AppModel { gtk::STYLE_PROVIDER_PRIORITY_APPLICATION, ); - let drawing_area = gtk::DrawingArea::new(); - let map = parse(&initial_content); - let mut render_configuration = Configuration::default(); - let stage_type = StageType::Activities; - render_configuration.options.smart_label_positioning = true; - let surface = - render_to_surface(&map, &stage_type.to_localized(), &render_configuration).unwrap_or_else(|_| { - ImageSurface::create(cairo::Format::ARgb32, 1, 1) - .expect("errors.render.failed_to_create_surface") - }); + let (drawing_area, map, render_configuration, stage_type, surface) = + Self::init_drawing_area(&initial_content); if let Some(ref path) = current_file { file_registry::register_file(path, &root); } let prefs = preferences::storage::load(); - - let templates_menu = gio::Menu::new(); - for template in &prefs.map_templates { - templates_menu.append( - Some(&template.name), - Some(&format!("window.new-from-template::{}", template.id)) - ); - } - - let main_menu = gio::Menu::new(); - main_menu.append(Some(&tr!("command.file.new")), Some("window.new")); - main_menu.append_submenu(Some(&tr!("command.file.new_from_template")), &templates_menu); - main_menu.append(Some(&tr!("command.file.open")), Some("window.open")); - main_menu.append(Some(&tr!("command.file.save")), Some("window.save")); - main_menu.append(Some(&tr!("command.file.save_as")), Some("window.save-as")); - main_menu.append(Some(&tr!("command.file.close")), Some("window.close")); - main_menu.append(Some(&tr!("command.file.export")), Some("window.export-image")); - - let layout_section = gio::Menu::new(); - layout_section.append( - Some(&tr!("command.view.use_vertical_layout")), - Some("window.change-orientation"), - ); - main_menu.append_section(None, &layout_section); - - let zoom_section = gio::Menu::new(); - zoom_section.append(Some(&tr!("command.view.zoom_in")), Some("window.zoom-in")); - zoom_section.append(Some(&tr!("command.view.zoom_out")), Some("window.zoom-out")); - main_menu.append_section(None, &zoom_section); - - let prefs_section = gio::Menu::new(); - prefs_section.append(Some(&tr!("command.application.preferences")), Some("window.preferences")); - main_menu.append_section(None, &prefs_section); + let (templates_menu, main_menu) = Self::init_main_menu(&prefs); let mut model = AppModel { orientation: gtk::Orientation::Horizontal, @@ -663,10 +714,10 @@ impl SimpleComponent for AppModel { Action::ZoomOut => handlers::zoom::zoom_out(self), Action::ExportImage => { - dialogs::show_export_dialog(&self.window, self.current_file.clone(), sender) + dialogs::show_export_dialog(&self.window, self.current_file.as_ref(), sender); } Action::ExportToFile { path, format } => { - handlers::export::export_to_file(self, path, format) + handlers::export::export_to_file(self, &path, format); } Action::New => { @@ -687,18 +738,18 @@ impl SimpleComponent for AppModel { } } Action::Open => { - dialogs::show_open_dialog(&self.window, self.is_empty_document(), sender) + dialogs::show_open_dialog(&self.window, self.is_empty_document(), sender); } Action::Save { close_after } => handlers::file::save(self, close_after, &sender), Action::SaveAs { close_after } => dialogs::show_save_dialog( &self.window, - self.current_file.clone(), + self.current_file.as_ref(), close_after, sender, ), Action::LoadFile(path) => handlers::file::load_file(self, path), Action::SaveToFile { path, close_after } => { - handlers::file::save_to_file(self, path, close_after) + handlers::file::save_to_file(self, path, close_after); } Action::CloseWindow => handlers::file::close_window(self, &sender), @@ -729,7 +780,7 @@ impl SimpleComponent for AppModel { self.rebuild_stage_type_list(); self.rebuild_templates_menu(); self.update_image(); - file_registry::broadcast_to_all_windows(Action::ReloadPreferences); + file_registry::broadcast_to_all_windows(&Action::ReloadPreferences); } Action::PreferencesWindowClosed => { self.preferences_window = None; diff --git a/src/preferences/models.rs b/src/preferences/models.rs index dee84e6..81fa4d1 100644 --- a/src/preferences/models.rs +++ b/src/preferences/models.rs @@ -17,7 +17,7 @@ use serde::{Deserialize, Serialize}; use uuid::Uuid; -/// Stage labels for custom stages (matches Swift Stage struct) +/// Stage labels for custom stages #[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)] pub struct Stage { pub i: String, @@ -26,7 +26,7 @@ pub struct Stage { pub iv: String, } -/// Custom stage definition (matches Swift CustomStage) +/// Custom stage definition #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct CustomStage { @@ -73,7 +73,7 @@ impl CustomStage { } } -/// Template for new maps (matches Swift Template) +/// Template for new maps #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Template { @@ -106,7 +106,7 @@ impl Template { } } -/// JSON import/export format (matches Swift UserPreferencesJSON) +/// JSON import/export format /// All fields optional to support partial imports #[derive(Debug, Clone, Serialize, Deserialize, Default)] #[serde(rename_all = "camelCase")] @@ -136,6 +136,7 @@ pub struct UserPreferencesJson { /// Main preferences struct stored in app #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] +#[allow(clippy::struct_excessive_bools)] // These are independent boolean preferences, not a state machine pub struct UserPreferences { // Map preferences pub show_map_background: bool, @@ -218,10 +219,10 @@ impl UserPreferences { self.use_custom_font = *v; } if let Some(ref v) = json.custom_font_name { - self.custom_font_name = v.clone(); + self.custom_font_name.clone_from(v); } if let Some(ref v) = json.default_export_format { - self.default_export_format = v.clone(); + self.default_export_format.clone_from(v); } if let Some(v) = json.use_smart_label_positioning { self.use_smart_label_positioning = v; @@ -230,7 +231,7 @@ impl UserPreferences { self.use_custom_editor_font = *v; } if let Some(ref v) = json.custom_editor_font_name { - self.custom_editor_font_name = v.clone(); + self.custom_editor_font_name.clone_from(v); } if let Some(v) = json.editor_font_size { self.editor_font_size = v; @@ -239,13 +240,13 @@ impl UserPreferences { self.soft_wrap_lines = v; } if let Some(ref v) = json.map_templates { - self.map_templates = v.clone(); + self.map_templates.clone_from(v); } if let Some(ref v) = json.custom_stages { - self.custom_stages = v.clone(); + self.custom_stages.clone_from(v); } if let Some(ref v) = json.view_style { - self.view_style = v.clone(); + self.view_style.clone_from(v); } if let Some(v) = json.zoom { self.zoom = v; diff --git a/src/preferences/pages/editor.rs b/src/preferences/pages/editor.rs index d4acb94..336a488 100644 --- a/src/preferences/pages/editor.rs +++ b/src/preferences/pages/editor.rs @@ -33,7 +33,7 @@ pub struct EditorPage { } impl EditorPage { - pub fn new(preferences: &UserPreferences, sender: Sender<PreferencesInput>) -> Self { + pub fn new(preferences: &UserPreferences, sender: &Sender<PreferencesInput>) -> Self { let container = gtk::Box::new(gtk::Orientation::Vertical, 20); container.set_margin_top(20); container.set_margin_bottom(20); @@ -57,7 +57,9 @@ impl EditorPage { }); } font_size_box.append(&font_size_spin); - font_size_box.append(>k::Label::new(Some(&tr!("preferences.editor.font_size.unit")))); + font_size_box.append(>k::Label::new(Some(&tr!( + "preferences.editor.font_size.unit" + )))); container.append(&font_size_box); // Editor Style section @@ -68,7 +70,10 @@ impl EditorPage { container.append(&style_label); // Soft Wrap Lines - let soft_wrap_row = create_switch_row(&tr!("preferences.editor.editor_style.soft_wrap_lines"), preferences.soft_wrap_lines); + let soft_wrap_row = create_switch_row( + &tr!("preferences.editor.editor_style.soft_wrap_lines"), + preferences.soft_wrap_lines, + ); let soft_wrap_switch = soft_wrap_row.1.clone(); { let sender = sender.clone(); @@ -80,8 +85,10 @@ impl EditorPage { container.append(&soft_wrap_row.0); // Use Custom Font - let custom_font_row = - create_switch_row(&tr!("preferences.editor.editor_style.use_custom_font"), preferences.use_custom_editor_font); + let custom_font_row = create_switch_row( + &tr!("preferences.editor.editor_style.use_custom_font"), + preferences.use_custom_editor_font, + ); let custom_font_switch = custom_font_row.1.clone(); container.append(&custom_font_row.0); @@ -90,6 +97,8 @@ impl EditorPage { font_row.append(>k::Label::new(Some(&tr!("preferences.editor.font")))); let font_button = gtk::FontButton::new(); + + #[allow(clippy::cast_possible_truncation)] font_button.set_font(&format!( "{} {}", preferences.custom_editor_font_name, preferences.editor_font_size as i32 @@ -140,15 +149,16 @@ impl EditorPage { pub fn sync_from(&self, preferences: &UserPreferences) { self.font_size_spin.set_value(preferences.editor_font_size); - self.soft_wrap_switch.set_active(preferences.soft_wrap_lines); + self.soft_wrap_switch + .set_active(preferences.soft_wrap_lines); self.custom_font_switch .set_active(preferences.use_custom_editor_font); self.font_button .set_sensitive(preferences.use_custom_editor_font); + #[allow(clippy::cast_possible_truncation)] // Font size is always a small positive number self.font_button.set_font(&format!( "{} {}", preferences.custom_editor_font_name, preferences.editor_font_size as i32 )); } } - diff --git a/src/preferences/pages/general.rs b/src/preferences/pages/general.rs index d70e9e6..ad15c82 100644 --- a/src/preferences/pages/general.rs +++ b/src/preferences/pages/general.rs @@ -28,7 +28,7 @@ pub struct GeneralPage { } impl GeneralPage { - pub fn new(sender: Sender<PreferencesInput>) -> Self { + pub fn new(sender: &Sender<PreferencesInput>) -> Self { let container = gtk::Box::new(gtk::Orientation::Vertical, 20); container.set_margin_top(20); container.set_margin_bottom(20); diff --git a/src/preferences/pages/map.rs b/src/preferences/pages/map.rs index 5ffd04a..4355c6f 100644 --- a/src/preferences/pages/map.rs +++ b/src/preferences/pages/map.rs @@ -34,7 +34,7 @@ pub struct MapPage { } impl MapPage { - pub fn new(preferences: &UserPreferences, sender: Sender<PreferencesInput>) -> Self { + pub fn new(preferences: &UserPreferences, sender: &Sender<PreferencesInput>) -> Self { let container = gtk::Box::new(gtk::Orientation::Vertical, 20); container.set_margin_top(20); container.set_margin_bottom(20); @@ -42,15 +42,36 @@ impl MapPage { container.set_margin_end(20); container.set_valign(gtk::Align::Start); - // Map Style section + let (show_background_switch, smart_positioning_switch, custom_font_switch, font_button) = + Self::init_style_section(&container, preferences, sender); + + let export_format_dropdown = Self::init_export_section(&container, preferences, sender); + + Self { + container, + show_background_switch, + smart_positioning_switch, + custom_font_switch, + font_button, + export_format_dropdown, + } + } + + fn init_style_section( + container: >k::Box, + preferences: &UserPreferences, + sender: &Sender<PreferencesInput>, + ) -> (gtk::Switch, gtk::Switch, gtk::Switch, gtk::FontButton) { let style_label = gtk::Label::new(Some(&tr!("preferences.map.map_style.title"))); style_label.add_css_class("heading"); style_label.set_halign(gtk::Align::Start); container.append(&style_label); // Show Background - let background_row = - create_switch_row(&tr!("preferences.map.map_style.show_background"), preferences.show_map_background); + let background_row = create_switch_row( + &tr!("preferences.map.map_style.show_background"), + preferences.show_map_background, + ); let show_background_switch = background_row.1.clone(); { let sender = sender.clone(); @@ -77,7 +98,10 @@ impl MapPage { container.append(&smart_row.0); // Use Custom Font - let custom_font_row = create_switch_row(&tr!("preferences.map.map_style.use_custom_font"), preferences.use_custom_font); + let custom_font_row = create_switch_row( + &tr!("preferences.map.map_style.use_custom_font"), + preferences.use_custom_font, + ); let custom_font_switch = custom_font_row.1.clone(); container.append(&custom_font_row.0); @@ -115,7 +139,19 @@ impl MapPage { }); } - // Export section + ( + show_background_switch, + smart_positioning_switch, + custom_font_switch, + font_button, + ) + } + + fn init_export_section( + container: >k::Box, + preferences: &UserPreferences, + sender: &Sender<PreferencesInput>, + ) -> gtk::DropDown { let export_label = gtk::Label::new(Some(&tr!("preferences.map.export.title"))); export_label.add_css_class("heading"); export_label.set_halign(gtk::Align::Start); @@ -123,9 +159,12 @@ impl MapPage { container.append(&export_label); let export_row = gtk::Box::new(gtk::Orientation::Horizontal, 10); - export_row.append(>k::Label::new(Some(&tr!("preferences.map.export.default_format")))); + export_row.append(>k::Label::new(Some(&tr!( + "preferences.map.export.default_format" + )))); - let formats = gtk::StringList::new(&[&tr!("export_formats.png"), &tr!("export_formats.svg")]); + let formats = + gtk::StringList::new(&[&tr!("export_formats.png"), &tr!("export_formats.svg")]); let export_format_dropdown = gtk::DropDown::new(Some(formats), None::<gtk::Expression>); let selected = match preferences.default_export_format.as_str() { "svg" => 1, @@ -145,14 +184,7 @@ impl MapPage { export_row.append(&export_format_dropdown); container.append(&export_row); - Self { - container, - show_background_switch, - smart_positioning_switch, - custom_font_switch, - font_button, - export_format_dropdown, - } + export_format_dropdown } pub fn widget(&self) -> gtk::Box { @@ -176,4 +208,3 @@ impl MapPage { self.export_format_dropdown.set_selected(selected); } } - diff --git a/src/preferences/pages/stages.rs b/src/preferences/pages/stages.rs index 9f0685d..4bd24e1 100644 --- a/src/preferences/pages/stages.rs +++ b/src/preferences/pages/stages.rs @@ -60,25 +60,25 @@ impl StagesPage { name_header.set_xalign(0.0); header_row.append(&name_header); - let i_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_i"))); - i_header.set_width_chars(12); - i_header.set_xalign(0.0); - header_row.append(&i_header); + let first_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_i"))); + first_header.set_width_chars(12); + first_header.set_xalign(0.0); + header_row.append(&first_header); - let ii_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_ii"))); - ii_header.set_width_chars(12); - ii_header.set_xalign(0.0); - header_row.append(&ii_header); + let second_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_ii"))); + second_header.set_width_chars(12); + second_header.set_xalign(0.0); + header_row.append(&second_header); - let iii_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_iii"))); - iii_header.set_width_chars(12); - iii_header.set_xalign(0.0); - header_row.append(&iii_header); + let third_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_iii"))); + third_header.set_width_chars(12); + third_header.set_xalign(0.0); + header_row.append(&third_header); - let iv_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_iv"))); - iv_header.set_width_chars(12); - iv_header.set_xalign(0.0); - header_row.append(&iv_header); + let fourth_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_iv"))); + fourth_header.set_width_chars(12); + fourth_header.set_xalign(0.0); + header_row.append(&fourth_header); // Spacer for delete button column let spacer = gtk::Box::new(gtk::Orientation::Horizontal, 0); @@ -172,12 +172,12 @@ impl StagesPage { hbox.append(&name_entry); // Stage I entry - let i_entry = gtk::Entry::new(); - i_entry.set_text(&stage.i); - i_entry.set_width_chars(12); + let first_entry = gtk::Entry::new(); + first_entry.set_text(&stage.i); + first_entry.set_width_chars(12); { let sender = self.sender.clone(); - i_entry.connect_changed(move |entry| { + first_entry.connect_changed(move |entry| { sender.emit(PreferencesInput::SetCustomStageLabel( id, StageLabel::I, @@ -185,15 +185,15 @@ impl StagesPage { )); }); } - hbox.append(&i_entry); + hbox.append(&first_entry); // Stage II entry - let ii_entry = gtk::Entry::new(); - ii_entry.set_text(&stage.ii); - ii_entry.set_width_chars(12); + let second_entry = gtk::Entry::new(); + second_entry.set_text(&stage.ii); + second_entry.set_width_chars(12); { let sender = self.sender.clone(); - ii_entry.connect_changed(move |entry| { + second_entry.connect_changed(move |entry| { sender.emit(PreferencesInput::SetCustomStageLabel( id, StageLabel::Ii, @@ -201,15 +201,15 @@ impl StagesPage { )); }); } - hbox.append(&ii_entry); + hbox.append(&second_entry); // Stage III entry - let iii_entry = gtk::Entry::new(); - iii_entry.set_text(&stage.iii); - iii_entry.set_width_chars(12); + let third_entry = gtk::Entry::new(); + third_entry.set_text(&stage.iii); + third_entry.set_width_chars(12); { let sender = self.sender.clone(); - iii_entry.connect_changed(move |entry| { + third_entry.connect_changed(move |entry| { sender.emit(PreferencesInput::SetCustomStageLabel( id, StageLabel::Iii, @@ -217,15 +217,15 @@ impl StagesPage { )); }); } - hbox.append(&iii_entry); + hbox.append(&third_entry); // Stage IV entry - let iv_entry = gtk::Entry::new(); - iv_entry.set_text(&stage.iv); - iv_entry.set_width_chars(12); + let fourth_entry = gtk::Entry::new(); + fourth_entry.set_text(&stage.iv); + fourth_entry.set_width_chars(12); { let sender = self.sender.clone(); - iv_entry.connect_changed(move |entry| { + fourth_entry.connect_changed(move |entry| { sender.emit(PreferencesInput::SetCustomStageLabel( id, StageLabel::Iv, @@ -233,7 +233,7 @@ impl StagesPage { )); }); } - hbox.append(&iv_entry); + hbox.append(&fourth_entry); // Delete button let delete_button = gtk::Button::from_icon_name("list-remove-symbolic"); diff --git a/src/preferences/pages/templates.rs b/src/preferences/pages/templates.rs index acc679f..1760085 100644 --- a/src/preferences/pages/templates.rs +++ b/src/preferences/pages/templates.rs @@ -78,9 +78,9 @@ impl TemplatesPage { { let sender = sender.clone(); add_button.connect_clicked(move |_| { - sender.emit(PreferencesInput::AddTemplate( - tr!("dialog.template.default_label"), - )); + sender.emit(PreferencesInput::AddTemplate(tr!( + "dialog.template.default_label" + ))); }); } button_box.append(&add_button); @@ -226,7 +226,7 @@ impl TemplatesPage { self.list_box.connect_row_selected(move |_, row| { if let Some(row) = row { - let index = row.index() as usize; + let index: usize = row.index().try_into().unwrap_or(0); if let Some(template) = templates.get(index) { *selected_id.borrow_mut() = Some(template.id); editor_buffer.set_text(&template.content); @@ -251,7 +251,8 @@ impl TemplatesPage { default_button.set_tooltip_text(Some(&tr!("preferences.templates.help.default"))); } else { default_button.set_icon_name("radio-symbolic"); - default_button.set_tooltip_text(Some(&tr!("preferences.templates.help.set_as_default"))); + default_button + .set_tooltip_text(Some(&tr!("preferences.templates.help.set_as_default"))); } default_button.add_css_class("flat"); { @@ -271,7 +272,10 @@ impl TemplatesPage { let sender = self.sender.clone(); let id = template.id; name_entry.connect_changed(move |entry| { - sender.emit(PreferencesInput::SetTemplateName(id, entry.text().to_string())); + sender.emit(PreferencesInput::SetTemplateName( + id, + entry.text().to_string(), + )); }); } hbox.append(&name_entry); diff --git a/src/preferences/window.rs b/src/preferences/window.rs index 2118056..0997716 100644 --- a/src/preferences/window.rs +++ b/src/preferences/window.rs @@ -143,9 +143,9 @@ impl SimpleComponent for PreferencesWindow { root: Self::Root, sender: ComponentSender<Self>, ) -> ComponentParts<Self> { - let general_page = general::GeneralPage::new(sender.input_sender().clone()); - let editor_page = editor::EditorPage::new(&preferences, sender.input_sender().clone()); - let map_page = map::MapPage::new(&preferences, sender.input_sender().clone()); + let general_page = general::GeneralPage::new(&sender.input_sender().clone()); + let editor_page = editor::EditorPage::new(&preferences, &sender.input_sender().clone()); + let map_page = map::MapPage::new(&preferences, &sender.input_sender().clone()); let stages_page = stages::StagesPage::new(&preferences, sender.input_sender().clone()); let templates_page = templates::TemplatesPage::new(&preferences, sender.input_sender().clone()); @@ -167,7 +167,6 @@ impl SimpleComponent for PreferencesWindow { fn update(&mut self, message: Self::Input, sender: ComponentSender<Self>) { match message { - // General page actions PreferencesInput::Export => { general::show_export_dialog(sender.input_sender(), &self.window); } @@ -188,8 +187,6 @@ impl SimpleComponent for PreferencesWindow { self.sync_ui_from_preferences(); self.save_and_notify(&sender); } - - // Map preferences PreferencesInput::SetShowMapBackground(v) => { self.preferences.show_map_background = v; self.save_and_notify(&sender); @@ -210,8 +207,6 @@ impl SimpleComponent for PreferencesWindow { self.preferences.use_smart_label_positioning = v; self.save_and_notify(&sender); } - - // Editor preferences PreferencesInput::SetUseCustomEditorFont(v) => { self.preferences.use_custom_editor_font = v; self.save_and_notify(&sender); @@ -228,88 +223,29 @@ impl SimpleComponent for PreferencesWindow { self.preferences.soft_wrap_lines = v; self.save_and_notify(&sender); } - - // Templates - PreferencesInput::AddTemplate(name) => { - let template = super::models::Template::new(name, String::new(), false); - self.preferences.map_templates.push(template); - self.templates_page.refresh(&self.preferences); - self.save_and_notify(&sender); - } - PreferencesInput::RemoveTemplate(id) => { - self.preferences.map_templates.retain(|t| t.id != id); - self.templates_page.refresh(&self.preferences); - self.save_and_notify(&sender); - } + PreferencesInput::AddTemplate(name) => self.handle_add_template(name, &sender), + PreferencesInput::RemoveTemplate(id) => self.handle_remove_template(id, &sender), PreferencesInput::SetTemplateContent(id, content) => { - if let Some(template) = self - .preferences - .map_templates - .iter_mut() - .find(|t| t.id == id) - { - template.content = content; - self.save_and_notify(&sender); - } + self.handle_set_template_content(id, content, &sender); } PreferencesInput::SetTemplateName(id, name) => { - if let Some(template) = self - .preferences - .map_templates - .iter_mut() - .find(|t| t.id == id) - { - template.name = name; - self.templates_page.refresh(&self.preferences); - self.save_and_notify(&sender); - } + self.handle_set_template_name(id, name, &sender); } PreferencesInput::SetDefaultTemplate(id) => { self.preferences.set_default_template(id); self.templates_page.refresh(&self.preferences); self.save_and_notify(&sender); } - - // Custom stages - PreferencesInput::AddCustomStage => { - let stage = super::models::CustomStage::placeholder_default(); - self.preferences.custom_stages.push(stage); - self.stages_page.refresh(&self.preferences); - self.save_and_notify(&sender); - } + PreferencesInput::AddCustomStage => self.handle_add_custom_stage(&sender), PreferencesInput::RemoveCustomStage(id) => { - self.preferences.custom_stages.retain(|s| s.id != id); - self.stages_page.refresh(&self.preferences); - self.save_and_notify(&sender); + self.handle_remove_custom_stage(id, &sender); } PreferencesInput::SetCustomStageName(id, name) => { - if let Some(stage) = self - .preferences - .custom_stages - .iter_mut() - .find(|s| s.id == id) - { - stage.name = name; - self.save_and_notify(&sender); - } + self.handle_set_custom_stage_name(id, name, &sender); } PreferencesInput::SetCustomStageLabel(id, label, value) => { - if let Some(stage) = self - .preferences - .custom_stages - .iter_mut() - .find(|s| s.id == id) - { - match label { - StageLabel::I => stage.stage.i = value, - StageLabel::Ii => stage.stage.ii = value, - StageLabel::Iii => stage.stage.iii = value, - StageLabel::Iv => stage.stage.iv = value, - } - self.save_and_notify(&sender); - } + self.handle_set_custom_stage_label(id, label, value, &sender); } - PreferencesInput::Close => { sender.output(PreferencesOutput::Closed).ok(); } @@ -333,4 +269,105 @@ impl PreferencesWindow { self.stages_page.refresh(&self.preferences); self.templates_page.refresh(&self.preferences); } + + fn handle_add_template(&mut self, name: String, sender: &ComponentSender<Self>) { + let template = super::models::Template::new(name, String::new(), false); + self.preferences.map_templates.push(template); + self.templates_page.refresh(&self.preferences); + self.save_and_notify(sender); + } + + fn handle_remove_template(&mut self, id: uuid::Uuid, sender: &ComponentSender<Self>) { + self.preferences.map_templates.retain(|t| t.id != id); + self.templates_page.refresh(&self.preferences); + self.save_and_notify(sender); + } + + fn handle_set_template_content( + &mut self, + id: uuid::Uuid, + content: String, + sender: &ComponentSender<Self>, + ) { + if let Some(template) = self + .preferences + .map_templates + .iter_mut() + .find(|t| t.id == id) + { + template.content = content; + self.save_and_notify(sender); + } + } + + fn handle_set_template_name( + &mut self, + id: uuid::Uuid, + name: String, + sender: &ComponentSender<Self>, + ) { + if let Some(template) = self + .preferences + .map_templates + .iter_mut() + .find(|t| t.id == id) + { + template.name = name; + self.templates_page.refresh(&self.preferences); + self.save_and_notify(sender); + } + } + + fn handle_add_custom_stage(&mut self, sender: &ComponentSender<Self>) { + let stage = super::models::CustomStage::placeholder_default(); + self.preferences.custom_stages.push(stage); + self.stages_page.refresh(&self.preferences); + self.save_and_notify(sender); + } + + fn handle_remove_custom_stage(&mut self, id: uuid::Uuid, sender: &ComponentSender<Self>) { + self.preferences.custom_stages.retain(|s| s.id != id); + self.stages_page.refresh(&self.preferences); + self.save_and_notify(sender); + } + + fn handle_set_custom_stage_name( + &mut self, + id: uuid::Uuid, + name: String, + sender: &ComponentSender<Self>, + ) { + if let Some(stage) = self + .preferences + .custom_stages + .iter_mut() + .find(|s| s.id == id) + { + stage.name = name; + self.save_and_notify(sender); + } + } + + fn handle_set_custom_stage_label( + &mut self, + id: uuid::Uuid, + label: StageLabel, + value: String, + sender: &ComponentSender<Self>, + ) { + if let Some(stage) = self + .preferences + .custom_stages + .iter_mut() + .find(|s| s.id == id) + { + match label { + StageLabel::I => stage.stage.i = value, + StageLabel::Ii => stage.stage.ii = value, + StageLabel::Iii => stage.stage.iii = value, + StageLabel::Iv => stage.stage.iv = value, + } + self.save_and_notify(sender); + } + } } diff --git a/src/stages.rs b/src/stages.rs index 8de8f89..3ab1f5a 100644 --- a/src/stages.rs +++ b/src/stages.rs @@ -14,8 +14,8 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. -use wmap_renderer::StageType; use crate::tr; +use wmap_renderer::StageType; /// All available stage types for rendering Wardley Maps. /// Order determines dropdown menu order. @@ -77,7 +77,13 @@ impl LocalizedStageType for StageType { StageType::Behavior => tr!("stages.behavior.name"), StageType::Cynefin => tr!("stages.cynefin.name"), StageType::EvolutionStage => tr!("stages.evolution_stage.name"), - StageType::Custom{name, i: _, ii: _, iii: _, iv: _} => name.to_string() + StageType::Custom { + name, + i: _, + ii: _, + iii: _, + iv: _, + } => name.clone(), } } fn localized_i(&self) -> String { @@ -104,7 +110,13 @@ impl LocalizedStageType for StageType { StageType::Behavior => tr!("stages.behavior.i"), StageType::Cynefin => tr!("stages.cynefin.i"), StageType::EvolutionStage => tr!("stages.evolution_stage.i"), - StageType::Custom{name: _, i, ii: _, iii: _, iv: _} => i.to_string() + StageType::Custom { + name: _, + i, + ii: _, + iii: _, + iv: _, + } => i.clone(), } } fn localized_ii(&self) -> String { @@ -131,7 +143,13 @@ impl LocalizedStageType for StageType { StageType::Behavior => tr!("stages.behavior.ii"), StageType::Cynefin => tr!("stages.cynefin.ii"), StageType::EvolutionStage => tr!("stages.evolution_stage.ii"), - StageType::Custom{name: _, i: _, ii, iii: _, iv: _} => ii.to_string() + StageType::Custom { + name: _, + i: _, + ii, + iii: _, + iv: _, + } => ii.clone(), } } fn localized_iii(&self) -> String { @@ -158,7 +176,13 @@ impl LocalizedStageType for StageType { StageType::Behavior => tr!("stages.behavior.iii"), StageType::Cynefin => tr!("stages.cynefin.iii"), StageType::EvolutionStage => tr!("stages.evolution_stage.iii"), - StageType::Custom{name: _, i: _, ii: _, iii, iv: _} => iii.to_string() + StageType::Custom { + name: _, + i: _, + ii: _, + iii, + iv: _, + } => iii.clone(), } } fn localized_iv(&self) -> String { @@ -185,17 +209,23 @@ impl LocalizedStageType for StageType { StageType::Behavior => tr!("stages.behavior.iv"), StageType::Cynefin => tr!("stages.cynefin.iv"), StageType::EvolutionStage => tr!("stages.evolution_stage.iv"), - StageType::Custom{name: _, i: _, ii: _, iii: _, iv} => iv.to_string() + StageType::Custom { + name: _, + i: _, + ii: _, + iii: _, + iv, + } => iv.clone(), } } fn to_localized(&self) -> StageType { - StageType::Custom{ + StageType::Custom { name: self.localized_name(), i: self.localized_i(), ii: self.localized_ii(), iii: self.localized_iii(), - iv: self.localized_iv() + iv: self.localized_iv(), } } } |