diff --git a/.direnv/flake-profile b/.direnv/flake-profile new file mode 120000 index 0000000..e289079 --- /dev/null +++ b/.direnv/flake-profile @@ -0,0 +1 @@ +flake-profile-4-link \ No newline at end of file diff --git a/.direnv/flake-profile-4-link b/.direnv/flake-profile-4-link new file mode 120000 index 0000000..fcbff45 --- /dev/null +++ b/.direnv/flake-profile-4-link @@ -0,0 +1 @@ +/nix/store/30prmd5nyydss0bcs7d578grjav6i7x3-nix-shell-env \ No newline at end of file diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..af0cc93 --- /dev/null +++ b/.envrc @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +use flake diff --git a/.github/workflows/release-arch.yml b/.github/workflows/release-arch.yml index 3a4e4bf..222090c 100644 --- a/.github/workflows/release-arch.yml +++ b/.github/workflows/release-arch.yml @@ -18,4 +18,4 @@ jobs: uses: softprops/action-gh-release@v1 with: files: | - reset-${{github.ref_name}}-0-x86_64.pkg.tar.zst + ReSet-${{github.ref_name}}-0-x86_64.pkg.tar.zst diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 38194c5..a2763dd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,6 @@ on: release: - types: [ created ] - + types: [created] jobs: release: runs-on: [self-hosted, ubuntu] @@ -13,23 +12,26 @@ jobs: profile: minimal toolchain: nightly - name: Build rust package - run: cargo build --release --verbose - - name: Build Flatpak run: | - cd flatpak - python3 flatpak-generator.py ../Cargo.lock -o cargo-sources.json - flatpak-builder build org.Xetibo.ReSet.json --force-clean - flatpak build-export export build - flatpak build-bundle export reset.flatpak org.Xetibo.ReSet + cargo build --release --verbose + - name: Build Flatpak + run: "cd flatpak\npython3 flatpak-generator.py ../Cargo.lock -o cargo-sources.json \nflatpak-builder build org.Xetibo.ReSet.json --force-clean \nflatpak build-export export build\nflatpak build-bundle export reset.flatpak org.Xetibo.ReSet\n" - name: Build Ubuntu package run: | - cp ./target/release/reset ./debian/. + mkdir -p ./debian/usr + mkdir -p ./debian/usr/bin + mkdir -p ./debian/usr/share + mkdir -p ./debian/usr/share/applications + mkdir -p ./debian/usr/share/pixmaps + cp ./target/release/ReSet ./debian/usr/bin/ReSet + cp ./ReSet.desktop ./debian/usr/share/applications/. + cp ./src/resources/icons/ReSet.svg ./debian/usr/share/pixmaps/. dpkg-deb --build debian - mv debian.deb reset.deb + mv debian.deb ReSet.deb - name: Release uses: softprops/action-gh-release@v1 with: files: | - target/release/reset + target/release/ReSet flatpak/reset.flatpak - reset.deb + ReSet.deb diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 089fbcf..a9a14db 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -1,25 +1,33 @@ -name: Rust - +# inspired by https://github.com/danth/stylix/blob/master/.github/workflows/docs.yml +name: Rust-build on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] - -env: - CARGO_TERM_COLOR: always - + branches: ["main"] jobs: build: - runs-on: [self-hosted, ubuntu] + name: Build + permissions: + contents: read + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: nightly-rust - uses: actions-rs/toolchain@v1 + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@main with: - profile: minimal - toolchain: nightly + github-token: ${{ secrets.GITHUB_TOKEN }} + extra-conf: | + extra-experimental-features = nix-command flakes + - name: Set up cache + uses: DeterminateSystems/magic-nix-cache-action@main + - name: action + uses: cachix/install-nix-action@v25 + with: + nix_path: nixpkgs=channel:nixos-unstable + - name: cache + uses: cachix/cachix-action@v14 + with: + name: reset + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Build - run: cargo build --verbose - - name: Run clippy - run: cargo clippy --fix + run: nix -L build github:${{ github.repository }}/${{ github.sha }} --no-write-lock-file diff --git a/.gitignore b/.gitignore index 3fa9c59..3f74942 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,6 @@ flatpak/reset.flatpak pkg/ *.pkg.tar.zst -# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries -# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html -Cargo.lock - # These are backup files generated by rustfmt **/*.rs.bk diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..0530042 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1434 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "anyhow" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "cairo-rs" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562" +dependencies = [ + "bitflags 2.5.0", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "cc" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "dbus" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" +dependencies = [ + "futures-channel", + "futures-util", + "libc", + "libdbus-sys", + "winapi", +] + +[[package]] +name = "dbus-crossroads" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a4c83437187544ba5142427746835061b330446ca8902eabd70e4afb8f76de0" +dependencies = [ + "dbus", +] + +[[package]] +name = "dbus-tokio" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "007688d459bc677131c063a3a77fb899526e17b7980f390b69644bdbc41fad13" +dependencies = [ + "dbus", + "libc", + "tokio", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "fork" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed" +dependencies = [ + "libc", +] + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.59", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk4" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk4-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk4-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "gio" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "pin-project-lite", + "smallvec", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "windows-sys 0.52.0", +] + +[[package]] +name = "glib" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7" +dependencies = [ + "bitflags 2.5.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-build-tools" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a" +dependencies = [ + "gio", +] + +[[package]] +name = "glib-macros" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71" +dependencies = [ + "heck", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.59", +] + +[[package]] +name = "glib-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "gobject-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "graphene-rs" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91" +dependencies = [ + "glib", + "graphene-sys", + "libc", +] + +[[package]] +name = "graphene-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0" +dependencies = [ + "glib-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gsk4" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e" +dependencies = [ + "cairo-rs", + "gdk4", + "glib", + "graphene-rs", + "gsk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gsk4-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738" +dependencies = [ + "cairo-sys-rs", + "gdk4-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk4" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83" +dependencies = [ + "cairo-rs", + "field-offset", + "futures-channel", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "graphene-rs", + "gsk4", + "gtk4-macros", + "gtk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gtk4-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "gtk4-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "gsk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "ipnetwork" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" +dependencies = [ + "serde", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libadwaita" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9" +dependencies = [ + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "gtk4", + "libadwaita-sys", + "libc", + "pango", +] + +[[package]] +name = "libadwaita-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8" +dependencies = [ + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libdbus-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libpulse-binding" +version = "2.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3557a2dfc380c8f061189a01c6ae7348354e0c9886038dc6c171219c08eaff" +dependencies = [ + "bitflags 1.3.2", + "libc", + "libpulse-sys", + "num-derive", + "num-traits", + "winapi", +] + +[[package]] +name = "libpulse-sys" +version = "1.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc19e110fbf42c17260d30f6d3dc545f58491c7830d38ecb9aaca96e26067a9b" +dependencies = [ + "libc", + "num-derive", + "num-traits", + "pkg-config", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "pango" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1" +dependencies = [ + "gio", + "glib", + "libc", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "re_set-lib" +version = "5.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69ec9fc4d9e919feb030e5382de1aa49447404a57ecc19361bf7710f1cf9063e" +dependencies = [ + "dbus", + "dbus-crossroads", + "gtk4", + "libloading", + "libpulse-binding", + "once_cell", + "serial_test", + "toml", + "xdg", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "reset" +version = "2.0.0" +dependencies = [ + "dbus", + "fork", + "glib", + "glib-build-tools", + "gtk4", + "ipnetwork", + "libadwaita", + "re_set-lib", + "reset_daemon", + "tokio", +] + +[[package]] +name = "reset_daemon" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f72dd51da41c2fc3ac37ae55fbdeb2670d32cad39cc85cc95a9ea25fc02b6086" +dependencies = [ + "crossbeam", + "dbus", + "dbus-crossroads", + "dbus-tokio", + "libloading", + "libpulse-binding", + "once_cell", + "re_set-lib", + "serial_test", + "tokio", + "toml", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" + +[[package]] +name = "serde" +version = "1.0.198" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.198" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.59", +] + +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + +[[package]] +name = "serial_test" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.59", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck", + "pkg-config", + "toml", + "version-compare", +] + +[[package]] +name = "target-lexicon" +version = "0.12.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" + +[[package]] +name = "thiserror" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.59", +] + +[[package]] +name = "tokio" +version = "1.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +dependencies = [ + "backtrace", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.59", +] + +[[package]] +name = "toml" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.9", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.6", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352" +dependencies = [ + "memchr", +] + +[[package]] +name = "xdg" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546" diff --git a/Cargo.toml b/Cargo.toml index e8372c8..6c37d34 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,19 +1,23 @@ [package] name = "reset" -version = "0.1.8" +version = "2.0.0" edition = "2021" description = "A wip universal Linux settings application." repository = "https://github.com/Xetibo/ReSet" -license = "GPL-3.0-only" +license = "GPL-3.0-or-later" + +[[bin]] +name = "ReSet" +path = "src/main.rs" [dependencies] -reset_daemon = "0.7.2" -re_set-lib = "0.8.7" -adw = { version = "0.5.3", package = "libadwaita", features = ["v1_4"] } +reset_daemon = "2.2.0" +re_set-lib = "5.2.5" +adw = { version = "0.6.0", package = "libadwaita", features = ["v1_4"] } dbus = "0.9.7" -gtk = { version = "0.7.3", package = "gtk4", features = ["v4_12"] } -glib = "0.18.3" -tokio = { version = "1.33.0", features = [ +gtk = { version = "0.8.1", package = "gtk4", features = ["v4_12"] } +glib = "0.19.3" +tokio = { version = "1.36.0", features = [ "rt", "time", "net", @@ -21,8 +25,8 @@ tokio = { version = "1.33.0", features = [ "rt-multi-thread", "sync", ] } -fork = "0.1.22" +fork = "0.1.23" ipnetwork = "0.20.0" [build-dependencies] -glib-build-tools = "0.18.0" +glib-build-tools = "0.19.0" diff --git a/PKGBUILD b/PKGBUILD index 6e8f132..b3c6119 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,12 +1,15 @@ # Maintainer: Fabio Lenherr -pkgname=reset -pkgver=0.1.8 +pkgname=ReSet +pkgver=2.0.0 pkgrel=0 arch=('x86_64') pkgdir="/usr/bin/${pkgname}" pkgdesc="A wip universal Linux settings application." -depends=('rust' 'gtk4' 'dbus') +depends=('gtk4' 'dbus' 'libadwaita') +optdepends=('pipewire-pulse' 'networkmanager' 'bluez') +makedepends=('rust') + build() { cargo build --release @@ -16,5 +19,5 @@ package() { cd .. install -Dm755 target/release/"$pkgname" "$pkgdir"/usr/bin/"$pkgname" install -Dm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop" - install -Dm644 "src/resources/icons/ReSet.svg" "$pkgdir/usr/share/pixmaps/ReSet.svg" + install -Dm644 "src/resources/icons/$pkgname.svg" "$pkgdir/usr/share/pixmaps/$pkgname.svg" } diff --git a/README.md b/README.md index d04d400..2165d9c 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ ![Logo of ReSet](./assets/ReSet.png) A window manager/compositor agnostic settings application for Linux written in rust and gtk4. + - - ## Features + - Bluetooth via bluez - Audio via PulseAudio - Wi-Fi via NetworkManager @@ -23,31 +23,58 @@ A window manager/compositor agnostic settings application for Linux written in r Audio Screenshot of ReSet ### Wi-Fi + Wi-Fi Screenshot of ReSet ### Bluetooth + Bluetooth Screenshot of ReSet +## Plugins + +ReSet features a plugin system by loading dynamic libraries for both the daemon and the ReSet graphical user interface. +A list of official plugins, installation guides and their documentation can be found at [ReSet-Plugins](https://github.com/Xetibo/ReSet-Plugins). + +### Installation + +Plugins are loaded either from `/usr/lib/reset` or `~/.config/reset/plugins`. In order to install the plugin, either install a distribution specific package that places the library into the specified system folder, or place the library in the plugins folder in your config directory. + +Note, after installation, please move to confirmation. + +### Confirmation + +In order for your plugins to load, you have to define them in `.config/reset/ReSet.toml`. +This is done to avoid loading of arbitrary plugins that might be placed within this folder by accident. + +```toml +plugins = ["libreset_monitors.so", "libreset_keyboard_plugin.so"] +``` + ## Packaging + ReSet is available with the following packaging solutions: ### Flatpak + We are currently not published on flatpak due to issues with permissions. This is being worked on... -installation: -Download the flatpak package from the release and install with the terminal. +Installation: +Download the flatpak package (reset.flatpak) from the release and install with the terminal. + ``` flatpak install --user reset.flatpak ``` ### Arch Package + + Manually: -Download the package from the releases tab and install it with pacman. +Download the package (ReSet-version-x86_64.pkg.tar.zst) from the releases tab and install it with pacman. ``` sudo pacman -U /path/to/reset @@ -55,31 +82,60 @@ sudo pacman -U /path/to/reset ### Debian Package(Ubuntu 23.04 dependencies) -Download the package from the releases tab and install it with apt. +Download the package (ReSet.deb) from the releases tab and install it with apt. + ``` sudo apt install ./path/to/reset ``` + +### NixOS/Home-manager + +ReSet offers a flake with a home-manager module which you can use to declaratively install ReSet and plugins. +Here is an example configuration: + +```nix +#inputs +reset.url = "github:Xetibo/ReSet"; +reset-plugins.url = "github:Xetibo/ReSet-Plugins"; + +#installation and configuration + programs.ReSet.enable = true; + programs.ReSet.config.plugins = [ + inputs.reset-plugins.packages."x86_64-linux".monitor + inputs.reset-plugins.packages."x86_64-linux".keyboard + ]; + programs.ReSet.config.plugin_config = { + #custom toml config + Keyboard = { + path = "/home/user/.config/reset/keyboard.conf"; + }; + }; +``` + ### crates + ``` cargo install reset ``` + ### Compiled Binary The compiled binary is provided in the releases. ## Usage + Besides starting the application itself, a standalone daemon version ([ReSet-Daemon](https://github.com/Xetibo/ReSet-Daemon)) also exists, which is what provides the functionality for ReSet.\ It is therefore possible to use a different application as well for interacting with the daemon. By default, the daemon is integrated into ReSet and is started automatically if no other daemon is found. -## Roadmap -This application was developed as a semester project for the Eastern Switzerland University of Applied Sciences. -With potential advancements as a next project, due to this, no major development will happen until February 2024. -However, there is still a roadmap for this application. +## Roadmap and Notes -- Plugin System - Accessibility Features - Better Error handling - Customizable shortcuts - and more + +### notes + +This application was developed as a semester project/bachelor thesis for the Eastern Switzerland University of Applied Sciences. diff --git a/reset.desktop b/ReSet.desktop similarity index 94% rename from reset.desktop rename to ReSet.desktop index fd723ca..54736bb 100644 --- a/reset.desktop +++ b/ReSet.desktop @@ -2,7 +2,7 @@ Name=ReSet GenericName=SettingsApplication GenericName[de]=SettingsApplikation -Exec=reset +Exec=ReSet Terminal=false Type=Application Keywords=settings;gtk; diff --git a/debian/DEBIAN/control b/debian/DEBIAN/control index 79db977..dc7e71a 100644 --- a/debian/DEBIAN/control +++ b/debian/DEBIAN/control @@ -1,5 +1,9 @@ Package: ReSet -Version: 0.1 +Version: 2.0.0 Maintainer: DashieTM Architecture: all Description: A wip universal Linux settings application. +Homepage: https://github.com/Xetibo/ReSet +Build-Depends: rust +Depends: libadwaita-1-0, libgtk-4-1, dbus +Recommends: pipewire-pulse, network-manager, bluez diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..6a9af7f --- /dev/null +++ b/flake.lock @@ -0,0 +1,83 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1739446958, + "narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2ff53fe64443980e139eaa286017f53f88336dd0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1736320768, + "narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4bc9c909d9ac828a039f288cf872d16d38185db8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1739586408, + "narHash": "sha256-UN9hRKRE1eLU8C0cioTZubaCZQTA8NDc8/4vCpS5pS0=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "3dbc0ce1c0690b83cfb9a9a51fbe90c3bc8f9916", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..3f1fe32 --- /dev/null +++ b/flake.nix @@ -0,0 +1,62 @@ +{ + description = "A wip universal Linux settings application."; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-parts = { + url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs"; + }; + rust-overlay.url = "github:oxalica/rust-overlay"; + }; + + outputs = inputs @ { self, flake-parts, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + systems = [ "x86_64-linux" "aarch64-linux" ]; + + perSystem = + { config + , self' + , inputs' + , pkgs + , system + , ... + }: + { + _module.args.pkgs = import self.inputs.nixpkgs { + inherit system; + overlays = [ + (import + inputs.rust-overlay + ) + ]; + }; + devShells.default = pkgs.mkShell { + inputsFrom = builtins.attrValues self'.packages; + packages = with pkgs; [ + # (rust-bin.selectLatestNightlyWith + # (toolchain: toolchain.default)) + rust-bin.nightly."2024-05-10".default + rust-analyzer + clippy + ]; + }; + + packages = + let + lockFile = ./Cargo.lock; + in + rec { + ReSet = pkgs.callPackage ./nix/default.nix { inherit inputs lockFile; }; + default = ReSet; + }; + }; + flake = _: rec { + nixosModules.home-manager = homeManagerModules.default; + homeManagerModules = rec { + ReSet = import ./nix/hm.nix inputs.self; + default = ReSet; + }; + }; + }; +} diff --git a/flatpak/build.sh b/flatpak/build.sh index f0e52c7..3a5496b 100755 --- a/flatpak/build.sh +++ b/flatpak/build.sh @@ -1,4 +1,3 @@ -#! /bin/bash python3 flatpak-generator.py ../Cargo.lock -o cargo-sources.json flatpak-builder build org.Xetibo.ReSet.json --force-clean flatpak build-export export build diff --git a/flatpak/cargo-sources.json b/flatpak/cargo-sources.json index 642bf6d..506ad9b 100644 --- a/flatpak/cargo-sources.json +++ b/flatpak/cargo-sources.json @@ -28,40 +28,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/anyhow/anyhow-1.0.75.crate", - "sha256": "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6", - "dest": "cargo/vendor/anyhow-1.0.75" + "url": "https://static.crates.io/crates/anyhow/anyhow-1.0.82.crate", + "sha256": "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519", + "dest": "cargo/vendor/anyhow-1.0.82" }, { "type": "inline", - "contents": "{\"package\": \"a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6\", \"files\": {}}", - "dest": "cargo/vendor/anyhow-1.0.75", + "contents": "{\"package\": \"f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519\", \"files\": {}}", + "dest": "cargo/vendor/anyhow-1.0.82", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate", - "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa", - "dest": "cargo/vendor/autocfg-1.1.0" + "url": "https://static.crates.io/crates/autocfg/autocfg-1.2.0.crate", + "sha256": "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80", + "dest": "cargo/vendor/autocfg-1.2.0" }, { "type": "inline", - "contents": "{\"package\": \"d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa\", \"files\": {}}", - "dest": "cargo/vendor/autocfg-1.1.0", + "contents": "{\"package\": \"f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80\", \"files\": {}}", + "dest": "cargo/vendor/autocfg-1.2.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/backtrace/backtrace-0.3.69.crate", - "sha256": "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837", - "dest": "cargo/vendor/backtrace-0.3.69" + "url": "https://static.crates.io/crates/backtrace/backtrace-0.3.71.crate", + "sha256": "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d", + "dest": "cargo/vendor/backtrace-0.3.71" }, { "type": "inline", - "contents": "{\"package\": \"2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837\", \"files\": {}}", - "dest": "cargo/vendor/backtrace-0.3.69", + "contents": "{\"package\": \"26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d\", \"files\": {}}", + "dest": "cargo/vendor/backtrace-0.3.71", "dest-filename": ".cargo-checksum.json" }, { @@ -80,66 +80,66 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/bitflags/bitflags-2.4.1.crate", - "sha256": "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07", - "dest": "cargo/vendor/bitflags-2.4.1" + "url": "https://static.crates.io/crates/bitflags/bitflags-2.5.0.crate", + "sha256": "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1", + "dest": "cargo/vendor/bitflags-2.5.0" }, { "type": "inline", - "contents": "{\"package\": \"327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07\", \"files\": {}}", - "dest": "cargo/vendor/bitflags-2.4.1", + "contents": "{\"package\": \"cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1\", \"files\": {}}", + "dest": "cargo/vendor/bitflags-2.5.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/cairo-rs/cairo-rs-0.18.3.crate", - "sha256": "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1", - "dest": "cargo/vendor/cairo-rs-0.18.3" + "url": "https://static.crates.io/crates/cairo-rs/cairo-rs-0.19.4.crate", + "sha256": "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562", + "dest": "cargo/vendor/cairo-rs-0.19.4" }, { "type": "inline", - "contents": "{\"package\": \"f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1\", \"files\": {}}", - "dest": "cargo/vendor/cairo-rs-0.18.3", + "contents": "{\"package\": \"b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562\", \"files\": {}}", + "dest": "cargo/vendor/cairo-rs-0.19.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/cairo-sys-rs/cairo-sys-rs-0.18.2.crate", - "sha256": "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51", - "dest": "cargo/vendor/cairo-sys-rs-0.18.2" + "url": "https://static.crates.io/crates/cairo-sys-rs/cairo-sys-rs-0.19.2.crate", + "sha256": "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64", + "dest": "cargo/vendor/cairo-sys-rs-0.19.2" }, { "type": "inline", - "contents": "{\"package\": \"685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51\", \"files\": {}}", - "dest": "cargo/vendor/cairo-sys-rs-0.18.2", + "contents": "{\"package\": \"fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64\", \"files\": {}}", + "dest": "cargo/vendor/cairo-sys-rs-0.19.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/cc/cc-1.0.83.crate", - "sha256": "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0", - "dest": "cargo/vendor/cc-1.0.83" + "url": "https://static.crates.io/crates/cc/cc-1.0.94.crate", + "sha256": "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7", + "dest": "cargo/vendor/cc-1.0.94" }, { "type": "inline", - "contents": "{\"package\": \"f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0\", \"files\": {}}", - "dest": "cargo/vendor/cc-1.0.83", + "contents": "{\"package\": \"17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7\", \"files\": {}}", + "dest": "cargo/vendor/cc-1.0.94", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/cfg-expr/cfg-expr-0.15.5.crate", - "sha256": "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3", - "dest": "cargo/vendor/cfg-expr-0.15.5" + "url": "https://static.crates.io/crates/cfg-expr/cfg-expr-0.15.8.crate", + "sha256": "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02", + "dest": "cargo/vendor/cfg-expr-0.15.8" }, { "type": "inline", - "contents": "{\"package\": \"03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3\", \"files\": {}}", - "dest": "cargo/vendor/cfg-expr-0.15.5", + "contents": "{\"package\": \"d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02\", \"files\": {}}", + "dest": "cargo/vendor/cfg-expr-0.15.8", "dest-filename": ".cargo-checksum.json" }, { @@ -158,79 +158,92 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/crossbeam/crossbeam-0.8.2.crate", - "sha256": "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c", - "dest": "cargo/vendor/crossbeam-0.8.2" + "url": "https://static.crates.io/crates/crossbeam/crossbeam-0.8.4.crate", + "sha256": "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8", + "dest": "cargo/vendor/crossbeam-0.8.4" }, { "type": "inline", - "contents": "{\"package\": \"2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c\", \"files\": {}}", - "dest": "cargo/vendor/crossbeam-0.8.2", + "contents": "{\"package\": \"1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-0.8.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/crossbeam-channel/crossbeam-channel-0.5.9.crate", - "sha256": "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5", - "dest": "cargo/vendor/crossbeam-channel-0.5.9" + "url": "https://static.crates.io/crates/crossbeam-channel/crossbeam-channel-0.5.12.crate", + "sha256": "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95", + "dest": "cargo/vendor/crossbeam-channel-0.5.12" }, { "type": "inline", - "contents": "{\"package\": \"14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5\", \"files\": {}}", - "dest": "cargo/vendor/crossbeam-channel-0.5.9", + "contents": "{\"package\": \"ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-channel-0.5.12", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.4.crate", - "sha256": "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751", - "dest": "cargo/vendor/crossbeam-deque-0.8.4" + "url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.5.crate", + "sha256": "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d", + "dest": "cargo/vendor/crossbeam-deque-0.8.5" }, { "type": "inline", - "contents": "{\"package\": \"fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751\", \"files\": {}}", - "dest": "cargo/vendor/crossbeam-deque-0.8.4", + "contents": "{\"package\": \"613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-deque-0.8.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.16.crate", - "sha256": "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa", - "dest": "cargo/vendor/crossbeam-epoch-0.9.16" + "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\": \"2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa\", \"files\": {}}", - "dest": "cargo/vendor/crossbeam-epoch-0.9.16", + "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-queue/crossbeam-queue-0.3.9.crate", - "sha256": "b9bcf5bdbfdd6030fb4a1c497b5d5fc5921aa2f60d359a17e249c0e6df3de153", - "dest": "cargo/vendor/crossbeam-queue-0.3.9" + "url": "https://static.crates.io/crates/crossbeam-queue/crossbeam-queue-0.3.11.crate", + "sha256": "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35", + "dest": "cargo/vendor/crossbeam-queue-0.3.11" }, { "type": "inline", - "contents": "{\"package\": \"b9bcf5bdbfdd6030fb4a1c497b5d5fc5921aa2f60d359a17e249c0e6df3de153\", \"files\": {}}", - "dest": "cargo/vendor/crossbeam-queue-0.3.9", + "contents": "{\"package\": \"df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-queue-0.3.11", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.17.crate", - "sha256": "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f", - "dest": "cargo/vendor/crossbeam-utils-0.8.17" + "url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.19.crate", + "sha256": "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345", + "dest": "cargo/vendor/crossbeam-utils-0.8.19" }, { "type": "inline", - "contents": "{\"package\": \"c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f\", \"files\": {}}", - "dest": "cargo/vendor/crossbeam-utils-0.8.17", + "contents": "{\"package\": \"248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-utils-0.8.19", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dashmap/dashmap-5.5.3.crate", + "sha256": "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856", + "dest": "cargo/vendor/dashmap-5.5.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856\", \"files\": {}}", + "dest": "cargo/vendor/dashmap-5.5.3", "dest-filename": ".cargo-checksum.json" }, { @@ -272,32 +285,6 @@ "dest": "cargo/vendor/dbus-tokio-0.7.6", "dest-filename": ".cargo-checksum.json" }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/directories-next/directories-next-2.0.0.crate", - "sha256": "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc", - "dest": "cargo/vendor/directories-next-2.0.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc\", \"files\": {}}", - "dest": "cargo/vendor/directories-next-2.0.0", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/dirs-sys-next/dirs-sys-next-0.1.2.crate", - "sha256": "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d", - "dest": "cargo/vendor/dirs-sys-next-0.1.2" - }, - { - "type": "inline", - "contents": "{\"package\": \"4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d\", \"files\": {}}", - "dest": "cargo/vendor/dirs-sys-next-0.1.2", - "dest-filename": ".cargo-checksum.json" - }, { "type": "archive", "archive-type": "tar-gzip", @@ -327,170 +314,183 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/fork/fork-0.1.22.crate", - "sha256": "bf2ca97a59201425e7ee4d197c9c4fea282fe87a97d666a580bda889b95b8e88", - "dest": "cargo/vendor/fork-0.1.22" + "url": "https://static.crates.io/crates/fork/fork-0.1.23.crate", + "sha256": "60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed", + "dest": "cargo/vendor/fork-0.1.23" }, { "type": "inline", - "contents": "{\"package\": \"bf2ca97a59201425e7ee4d197c9c4fea282fe87a97d666a580bda889b95b8e88\", \"files\": {}}", - "dest": "cargo/vendor/fork-0.1.22", + "contents": "{\"package\": \"60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed\", \"files\": {}}", + "dest": "cargo/vendor/fork-0.1.23", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.29.crate", - "sha256": "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb", - "dest": "cargo/vendor/futures-channel-0.3.29" + "url": "https://static.crates.io/crates/futures/futures-0.3.30.crate", + "sha256": "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0", + "dest": "cargo/vendor/futures-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb\", \"files\": {}}", - "dest": "cargo/vendor/futures-channel-0.3.29", + "contents": "{\"package\": \"645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0\", \"files\": {}}", + "dest": "cargo/vendor/futures-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-core/futures-core-0.3.29.crate", - "sha256": "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c", - "dest": "cargo/vendor/futures-core-0.3.29" + "url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.30.crate", + "sha256": "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78", + "dest": "cargo/vendor/futures-channel-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c\", \"files\": {}}", - "dest": "cargo/vendor/futures-core-0.3.29", + "contents": "{\"package\": \"eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78\", \"files\": {}}", + "dest": "cargo/vendor/futures-channel-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-executor/futures-executor-0.3.29.crate", - "sha256": "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc", - "dest": "cargo/vendor/futures-executor-0.3.29" + "url": "https://static.crates.io/crates/futures-core/futures-core-0.3.30.crate", + "sha256": "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d", + "dest": "cargo/vendor/futures-core-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc\", \"files\": {}}", - "dest": "cargo/vendor/futures-executor-0.3.29", + "contents": "{\"package\": \"dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d\", \"files\": {}}", + "dest": "cargo/vendor/futures-core-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-io/futures-io-0.3.29.crate", - "sha256": "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa", - "dest": "cargo/vendor/futures-io-0.3.29" + "url": "https://static.crates.io/crates/futures-executor/futures-executor-0.3.30.crate", + "sha256": "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d", + "dest": "cargo/vendor/futures-executor-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa\", \"files\": {}}", - "dest": "cargo/vendor/futures-io-0.3.29", + "contents": "{\"package\": \"a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d\", \"files\": {}}", + "dest": "cargo/vendor/futures-executor-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.29.crate", - "sha256": "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb", - "dest": "cargo/vendor/futures-macro-0.3.29" + "url": "https://static.crates.io/crates/futures-io/futures-io-0.3.30.crate", + "sha256": "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1", + "dest": "cargo/vendor/futures-io-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb\", \"files\": {}}", - "dest": "cargo/vendor/futures-macro-0.3.29", + "contents": "{\"package\": \"a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1\", \"files\": {}}", + "dest": "cargo/vendor/futures-io-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-task/futures-task-0.3.29.crate", - "sha256": "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2", - "dest": "cargo/vendor/futures-task-0.3.29" + "url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.30.crate", + "sha256": "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac", + "dest": "cargo/vendor/futures-macro-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2\", \"files\": {}}", - "dest": "cargo/vendor/futures-task-0.3.29", + "contents": "{\"package\": \"87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac\", \"files\": {}}", + "dest": "cargo/vendor/futures-macro-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-util/futures-util-0.3.29.crate", - "sha256": "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104", - "dest": "cargo/vendor/futures-util-0.3.29" + "url": "https://static.crates.io/crates/futures-sink/futures-sink-0.3.30.crate", + "sha256": "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5", + "dest": "cargo/vendor/futures-sink-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104\", \"files\": {}}", - "dest": "cargo/vendor/futures-util-0.3.29", + "contents": "{\"package\": \"9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5\", \"files\": {}}", + "dest": "cargo/vendor/futures-sink-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gdk-pixbuf/gdk-pixbuf-0.18.3.crate", - "sha256": "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c", - "dest": "cargo/vendor/gdk-pixbuf-0.18.3" + "url": "https://static.crates.io/crates/futures-task/futures-task-0.3.30.crate", + "sha256": "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004", + "dest": "cargo/vendor/futures-task-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c\", \"files\": {}}", - "dest": "cargo/vendor/gdk-pixbuf-0.18.3", + "contents": "{\"package\": \"38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004\", \"files\": {}}", + "dest": "cargo/vendor/futures-task-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gdk-pixbuf-sys/gdk-pixbuf-sys-0.18.0.crate", - "sha256": "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7", - "dest": "cargo/vendor/gdk-pixbuf-sys-0.18.0" + "url": "https://static.crates.io/crates/futures-util/futures-util-0.3.30.crate", + "sha256": "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48", + "dest": "cargo/vendor/futures-util-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7\", \"files\": {}}", - "dest": "cargo/vendor/gdk-pixbuf-sys-0.18.0", + "contents": "{\"package\": \"3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48\", \"files\": {}}", + "dest": "cargo/vendor/futures-util-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gdk4/gdk4-0.7.3.crate", - "sha256": "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6", - "dest": "cargo/vendor/gdk4-0.7.3" + "url": "https://static.crates.io/crates/gdk-pixbuf/gdk-pixbuf-0.19.2.crate", + "sha256": "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92", + "dest": "cargo/vendor/gdk-pixbuf-0.19.2" }, { "type": "inline", - "contents": "{\"package\": \"7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6\", \"files\": {}}", - "dest": "cargo/vendor/gdk4-0.7.3", + "contents": "{\"package\": \"f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92\", \"files\": {}}", + "dest": "cargo/vendor/gdk-pixbuf-0.19.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gdk4-sys/gdk4-sys-0.7.2.crate", - "sha256": "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0", - "dest": "cargo/vendor/gdk4-sys-0.7.2" + "url": "https://static.crates.io/crates/gdk-pixbuf-sys/gdk-pixbuf-sys-0.19.0.crate", + "sha256": "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96", + "dest": "cargo/vendor/gdk-pixbuf-sys-0.19.0" }, { "type": "inline", - "contents": "{\"package\": \"dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0\", \"files\": {}}", - "dest": "cargo/vendor/gdk4-sys-0.7.2", + "contents": "{\"package\": \"3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96\", \"files\": {}}", + "dest": "cargo/vendor/gdk-pixbuf-sys-0.19.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/getrandom/getrandom-0.2.11.crate", - "sha256": "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f", - "dest": "cargo/vendor/getrandom-0.2.11" + "url": "https://static.crates.io/crates/gdk4/gdk4-0.8.1.crate", + "sha256": "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b", + "dest": "cargo/vendor/gdk4-0.8.1" }, { "type": "inline", - "contents": "{\"package\": \"fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f\", \"files\": {}}", - "dest": "cargo/vendor/getrandom-0.2.11", + "contents": "{\"package\": \"9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b\", \"files\": {}}", + "dest": "cargo/vendor/gdk4-0.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk4-sys/gdk4-sys-0.8.1.crate", + "sha256": "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626", + "dest": "cargo/vendor/gdk4-sys-0.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626\", \"files\": {}}", + "dest": "cargo/vendor/gdk4-sys-0.8.1", "dest-filename": ".cargo-checksum.json" }, { @@ -509,183 +509,183 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gio/gio-0.18.3.crate", - "sha256": "47d809baf02bdf1b5ef4ad3bf60dd9d4977149db4612b7bbb58e56aef168193b", - "dest": "cargo/vendor/gio-0.18.3" + "url": "https://static.crates.io/crates/gio/gio-0.19.4.crate", + "sha256": "3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845", + "dest": "cargo/vendor/gio-0.19.4" }, { "type": "inline", - "contents": "{\"package\": \"47d809baf02bdf1b5ef4ad3bf60dd9d4977149db4612b7bbb58e56aef168193b\", \"files\": {}}", - "dest": "cargo/vendor/gio-0.18.3", + "contents": "{\"package\": \"3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845\", \"files\": {}}", + "dest": "cargo/vendor/gio-0.19.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gio-sys/gio-sys-0.18.1.crate", - "sha256": "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2", - "dest": "cargo/vendor/gio-sys-0.18.1" + "url": "https://static.crates.io/crates/gio-sys/gio-sys-0.19.0.crate", + "sha256": "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4", + "dest": "cargo/vendor/gio-sys-0.19.0" }, { "type": "inline", - "contents": "{\"package\": \"37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2\", \"files\": {}}", - "dest": "cargo/vendor/gio-sys-0.18.1", + "contents": "{\"package\": \"bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4\", \"files\": {}}", + "dest": "cargo/vendor/gio-sys-0.19.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/glib/glib-0.18.4.crate", - "sha256": "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e", - "dest": "cargo/vendor/glib-0.18.4" + "url": "https://static.crates.io/crates/glib/glib-0.19.4.crate", + "sha256": "ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7", + "dest": "cargo/vendor/glib-0.19.4" }, { "type": "inline", - "contents": "{\"package\": \"951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e\", \"files\": {}}", - "dest": "cargo/vendor/glib-0.18.4", + "contents": "{\"package\": \"ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7\", \"files\": {}}", + "dest": "cargo/vendor/glib-0.19.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/glib-build-tools/glib-build-tools-0.18.0.crate", - "sha256": "3431c56f463443cba9bc3600248bc6d680cb614c2ee1cdd39dab5415bd12ac5c", - "dest": "cargo/vendor/glib-build-tools-0.18.0" + "url": "https://static.crates.io/crates/glib-build-tools/glib-build-tools-0.19.0.crate", + "sha256": "108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a", + "dest": "cargo/vendor/glib-build-tools-0.19.0" }, { "type": "inline", - "contents": "{\"package\": \"3431c56f463443cba9bc3600248bc6d680cb614c2ee1cdd39dab5415bd12ac5c\", \"files\": {}}", - "dest": "cargo/vendor/glib-build-tools-0.18.0", + "contents": "{\"package\": \"108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a\", \"files\": {}}", + "dest": "cargo/vendor/glib-build-tools-0.19.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/glib-macros/glib-macros-0.18.3.crate", - "sha256": "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5", - "dest": "cargo/vendor/glib-macros-0.18.3" + "url": "https://static.crates.io/crates/glib-macros/glib-macros-0.19.4.crate", + "sha256": "d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71", + "dest": "cargo/vendor/glib-macros-0.19.4" }, { "type": "inline", - "contents": "{\"package\": \"72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5\", \"files\": {}}", - "dest": "cargo/vendor/glib-macros-0.18.3", + "contents": "{\"package\": \"d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71\", \"files\": {}}", + "dest": "cargo/vendor/glib-macros-0.19.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/glib-sys/glib-sys-0.18.1.crate", - "sha256": "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898", - "dest": "cargo/vendor/glib-sys-0.18.1" + "url": "https://static.crates.io/crates/glib-sys/glib-sys-0.19.0.crate", + "sha256": "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4", + "dest": "cargo/vendor/glib-sys-0.19.0" }, { "type": "inline", - "contents": "{\"package\": \"063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898\", \"files\": {}}", - "dest": "cargo/vendor/glib-sys-0.18.1", + "contents": "{\"package\": \"630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4\", \"files\": {}}", + "dest": "cargo/vendor/glib-sys-0.19.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.18.0.crate", - "sha256": "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44", - "dest": "cargo/vendor/gobject-sys-0.18.0" + "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.19.0.crate", + "sha256": "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979", + "dest": "cargo/vendor/gobject-sys-0.19.0" }, { "type": "inline", - "contents": "{\"package\": \"0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44\", \"files\": {}}", - "dest": "cargo/vendor/gobject-sys-0.18.0", + "contents": "{\"package\": \"c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979\", \"files\": {}}", + "dest": "cargo/vendor/gobject-sys-0.19.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/graphene-rs/graphene-rs-0.18.1.crate", - "sha256": "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401", - "dest": "cargo/vendor/graphene-rs-0.18.1" + "url": "https://static.crates.io/crates/graphene-rs/graphene-rs-0.19.2.crate", + "sha256": "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91", + "dest": "cargo/vendor/graphene-rs-0.19.2" }, { "type": "inline", - "contents": "{\"package\": \"3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401\", \"files\": {}}", - "dest": "cargo/vendor/graphene-rs-0.18.1", + "contents": "{\"package\": \"99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91\", \"files\": {}}", + "dest": "cargo/vendor/graphene-rs-0.19.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/graphene-sys/graphene-sys-0.18.1.crate", - "sha256": "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59", - "dest": "cargo/vendor/graphene-sys-0.18.1" + "url": "https://static.crates.io/crates/graphene-sys/graphene-sys-0.19.0.crate", + "sha256": "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0", + "dest": "cargo/vendor/graphene-sys-0.19.0" }, { "type": "inline", - "contents": "{\"package\": \"cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59\", \"files\": {}}", - "dest": "cargo/vendor/graphene-sys-0.18.1", + "contents": "{\"package\": \"236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0\", \"files\": {}}", + "dest": "cargo/vendor/graphene-sys-0.19.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gsk4/gsk4-0.7.3.crate", - "sha256": "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e", - "dest": "cargo/vendor/gsk4-0.7.3" + "url": "https://static.crates.io/crates/gsk4/gsk4-0.8.1.crate", + "sha256": "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e", + "dest": "cargo/vendor/gsk4-0.8.1" }, { "type": "inline", - "contents": "{\"package\": \"0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e\", \"files\": {}}", - "dest": "cargo/vendor/gsk4-0.7.3", + "contents": "{\"package\": \"c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e\", \"files\": {}}", + "dest": "cargo/vendor/gsk4-0.8.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gsk4-sys/gsk4-sys-0.7.3.crate", - "sha256": "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55", - "dest": "cargo/vendor/gsk4-sys-0.7.3" + "url": "https://static.crates.io/crates/gsk4-sys/gsk4-sys-0.8.1.crate", + "sha256": "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738", + "dest": "cargo/vendor/gsk4-sys-0.8.1" }, { "type": "inline", - "contents": "{\"package\": \"12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55\", \"files\": {}}", - "dest": "cargo/vendor/gsk4-sys-0.7.3", + "contents": "{\"package\": \"bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738\", \"files\": {}}", + "dest": "cargo/vendor/gsk4-sys-0.8.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gtk4/gtk4-0.7.3.crate", - "sha256": "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842", - "dest": "cargo/vendor/gtk4-0.7.3" + "url": "https://static.crates.io/crates/gtk4/gtk4-0.8.1.crate", + "sha256": "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83", + "dest": "cargo/vendor/gtk4-0.8.1" }, { "type": "inline", - "contents": "{\"package\": \"5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842\", \"files\": {}}", - "dest": "cargo/vendor/gtk4-0.7.3", + "contents": "{\"package\": \"aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-0.8.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gtk4-macros/gtk4-macros-0.7.2.crate", - "sha256": "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f", - "dest": "cargo/vendor/gtk4-macros-0.7.2" + "url": "https://static.crates.io/crates/gtk4-macros/gtk4-macros-0.8.1.crate", + "sha256": "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567", + "dest": "cargo/vendor/gtk4-macros-0.8.1" }, { "type": "inline", - "contents": "{\"package\": \"d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f\", \"files\": {}}", - "dest": "cargo/vendor/gtk4-macros-0.7.2", + "contents": "{\"package\": \"40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-macros-0.8.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gtk4-sys/gtk4-sys-0.7.3.crate", - "sha256": "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8", - "dest": "cargo/vendor/gtk4-sys-0.7.3" + "url": "https://static.crates.io/crates/gtk4-sys/gtk4-sys-0.8.1.crate", + "sha256": "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18", + "dest": "cargo/vendor/gtk4-sys-0.8.1" }, { "type": "inline", - "contents": "{\"package\": \"54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8\", \"files\": {}}", - "dest": "cargo/vendor/gtk4-sys-0.7.3", + "contents": "{\"package\": \"0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-sys-0.8.1", "dest-filename": ".cargo-checksum.json" }, { @@ -704,40 +704,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/heck/heck-0.4.1.crate", - "sha256": "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8", - "dest": "cargo/vendor/heck-0.4.1" + "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\": \"95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8\", \"files\": {}}", - "dest": "cargo/vendor/heck-0.4.1", + "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/hermit-abi/hermit-abi-0.3.3.crate", - "sha256": "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7", - "dest": "cargo/vendor/hermit-abi-0.3.3" + "url": "https://static.crates.io/crates/hermit-abi/hermit-abi-0.3.9.crate", + "sha256": "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024", + "dest": "cargo/vendor/hermit-abi-0.3.9" }, { "type": "inline", - "contents": "{\"package\": \"d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7\", \"files\": {}}", - "dest": "cargo/vendor/hermit-abi-0.3.3", + "contents": "{\"package\": \"d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024\", \"files\": {}}", + "dest": "cargo/vendor/hermit-abi-0.3.9", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/indexmap/indexmap-2.1.0.crate", - "sha256": "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f", - "dest": "cargo/vendor/indexmap-2.1.0" + "url": "https://static.crates.io/crates/indexmap/indexmap-2.2.6.crate", + "sha256": "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26", + "dest": "cargo/vendor/indexmap-2.2.6" }, { "type": "inline", - "contents": "{\"package\": \"d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f\", \"files\": {}}", - "dest": "cargo/vendor/indexmap-2.1.0", + "contents": "{\"package\": \"168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26\", \"files\": {}}", + "dest": "cargo/vendor/indexmap-2.2.6", "dest-filename": ".cargo-checksum.json" }, { @@ -756,40 +756,53 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/libadwaita/libadwaita-0.5.3.crate", - "sha256": "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c", - "dest": "cargo/vendor/libadwaita-0.5.3" + "url": "https://static.crates.io/crates/lazy_static/lazy_static-1.4.0.crate", + "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646", + "dest": "cargo/vendor/lazy_static-1.4.0" }, { "type": "inline", - "contents": "{\"package\": \"2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c\", \"files\": {}}", - "dest": "cargo/vendor/libadwaita-0.5.3", + "contents": "{\"package\": \"e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646\", \"files\": {}}", + "dest": "cargo/vendor/lazy_static-1.4.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/libadwaita-sys/libadwaita-sys-0.5.3.crate", - "sha256": "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a", - "dest": "cargo/vendor/libadwaita-sys-0.5.3" + "url": "https://static.crates.io/crates/libadwaita/libadwaita-0.6.0.crate", + "sha256": "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9", + "dest": "cargo/vendor/libadwaita-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a\", \"files\": {}}", - "dest": "cargo/vendor/libadwaita-sys-0.5.3", + "contents": "{\"package\": \"91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9\", \"files\": {}}", + "dest": "cargo/vendor/libadwaita-0.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/libc/libc-0.2.150.crate", - "sha256": "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c", - "dest": "cargo/vendor/libc-0.2.150" + "url": "https://static.crates.io/crates/libadwaita-sys/libadwaita-sys-0.6.0.crate", + "sha256": "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8", + "dest": "cargo/vendor/libadwaita-sys-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c\", \"files\": {}}", - "dest": "cargo/vendor/libc-0.2.150", + "contents": "{\"package\": \"23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8\", \"files\": {}}", + "dest": "cargo/vendor/libadwaita-sys-0.6.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libc/libc-0.2.153.crate", + "sha256": "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd", + "dest": "cargo/vendor/libc-0.2.153" + }, + { + "type": "inline", + "contents": "{\"package\": \"9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd\", \"files\": {}}", + "dest": "cargo/vendor/libc-0.2.153", "dest-filename": ".cargo-checksum.json" }, { @@ -805,6 +818,19 @@ "dest": "cargo/vendor/libdbus-sys-0.2.5", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libloading/libloading-0.8.3.crate", + "sha256": "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19", + "dest": "cargo/vendor/libloading-0.8.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19\", \"files\": {}}", + "dest": "cargo/vendor/libloading-0.8.3", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -834,66 +860,79 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/libredox/libredox-0.0.1.crate", - "sha256": "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8", - "dest": "cargo/vendor/libredox-0.0.1" + "url": "https://static.crates.io/crates/lock_api/lock_api-0.4.11.crate", + "sha256": "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45", + "dest": "cargo/vendor/lock_api-0.4.11" }, { "type": "inline", - "contents": "{\"package\": \"85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8\", \"files\": {}}", - "dest": "cargo/vendor/libredox-0.0.1", + "contents": "{\"package\": \"3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45\", \"files\": {}}", + "dest": "cargo/vendor/lock_api-0.4.11", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/memchr/memchr-2.6.4.crate", - "sha256": "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167", - "dest": "cargo/vendor/memchr-2.6.4" + "url": "https://static.crates.io/crates/log/log-0.4.21.crate", + "sha256": "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c", + "dest": "cargo/vendor/log-0.4.21" }, { "type": "inline", - "contents": "{\"package\": \"f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167\", \"files\": {}}", - "dest": "cargo/vendor/memchr-2.6.4", + "contents": "{\"package\": \"90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c\", \"files\": {}}", + "dest": "cargo/vendor/log-0.4.21", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/memoffset/memoffset-0.9.0.crate", - "sha256": "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c", - "dest": "cargo/vendor/memoffset-0.9.0" + "url": "https://static.crates.io/crates/memchr/memchr-2.7.2.crate", + "sha256": "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d", + "dest": "cargo/vendor/memchr-2.7.2" }, { "type": "inline", - "contents": "{\"package\": \"5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c\", \"files\": {}}", - "dest": "cargo/vendor/memoffset-0.9.0", + "contents": "{\"package\": \"6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d\", \"files\": {}}", + "dest": "cargo/vendor/memchr-2.7.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.7.1.crate", - "sha256": "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7", - "dest": "cargo/vendor/miniz_oxide-0.7.1" + "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\": \"e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7\", \"files\": {}}", - "dest": "cargo/vendor/miniz_oxide-0.7.1", + "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/mio/mio-0.8.9.crate", - "sha256": "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0", - "dest": "cargo/vendor/mio-0.8.9" + "url": "https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.7.2.crate", + "sha256": "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7", + "dest": "cargo/vendor/miniz_oxide-0.7.2" }, { "type": "inline", - "contents": "{\"package\": \"3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0\", \"files\": {}}", - "dest": "cargo/vendor/mio-0.8.9", + "contents": "{\"package\": \"9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7\", \"files\": {}}", + "dest": "cargo/vendor/miniz_oxide-0.7.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/mio/mio-0.8.11.crate", + "sha256": "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c", + "dest": "cargo/vendor/mio-0.8.11" + }, + { + "type": "inline", + "contents": "{\"package\": \"a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c\", \"files\": {}}", + "dest": "cargo/vendor/mio-0.8.11", "dest-filename": ".cargo-checksum.json" }, { @@ -912,14 +951,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/num-traits/num-traits-0.2.17.crate", - "sha256": "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c", - "dest": "cargo/vendor/num-traits-0.2.17" + "url": "https://static.crates.io/crates/num-traits/num-traits-0.2.18.crate", + "sha256": "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a", + "dest": "cargo/vendor/num-traits-0.2.18" }, { "type": "inline", - "contents": "{\"package\": \"39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c\", \"files\": {}}", - "dest": "cargo/vendor/num-traits-0.2.17", + "contents": "{\"package\": \"da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a\", \"files\": {}}", + "dest": "cargo/vendor/num-traits-0.2.18", "dest-filename": ".cargo-checksum.json" }, { @@ -938,66 +977,92 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/object/object-0.32.1.crate", - "sha256": "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0", - "dest": "cargo/vendor/object-0.32.1" + "url": "https://static.crates.io/crates/object/object-0.32.2.crate", + "sha256": "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441", + "dest": "cargo/vendor/object-0.32.2" }, { "type": "inline", - "contents": "{\"package\": \"9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0\", \"files\": {}}", - "dest": "cargo/vendor/object-0.32.1", + "contents": "{\"package\": \"a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441\", \"files\": {}}", + "dest": "cargo/vendor/object-0.32.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/once_cell/once_cell-1.18.0.crate", - "sha256": "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d", - "dest": "cargo/vendor/once_cell-1.18.0" + "url": "https://static.crates.io/crates/once_cell/once_cell-1.19.0.crate", + "sha256": "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92", + "dest": "cargo/vendor/once_cell-1.19.0" }, { "type": "inline", - "contents": "{\"package\": \"dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d\", \"files\": {}}", - "dest": "cargo/vendor/once_cell-1.18.0", + "contents": "{\"package\": \"3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92\", \"files\": {}}", + "dest": "cargo/vendor/once_cell-1.19.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/pango/pango-0.18.3.crate", - "sha256": "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4", - "dest": "cargo/vendor/pango-0.18.3" + "url": "https://static.crates.io/crates/pango/pango-0.19.3.crate", + "sha256": "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1", + "dest": "cargo/vendor/pango-0.19.3" }, { "type": "inline", - "contents": "{\"package\": \"7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4\", \"files\": {}}", - "dest": "cargo/vendor/pango-0.18.3", + "contents": "{\"package\": \"b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1\", \"files\": {}}", + "dest": "cargo/vendor/pango-0.19.3", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/pango-sys/pango-sys-0.18.0.crate", - "sha256": "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5", - "dest": "cargo/vendor/pango-sys-0.18.0" + "url": "https://static.crates.io/crates/pango-sys/pango-sys-0.19.0.crate", + "sha256": "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea", + "dest": "cargo/vendor/pango-sys-0.19.0" }, { "type": "inline", - "contents": "{\"package\": \"436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5\", \"files\": {}}", - "dest": "cargo/vendor/pango-sys-0.18.0", + "contents": "{\"package\": \"f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea\", \"files\": {}}", + "dest": "cargo/vendor/pango-sys-0.19.0", "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.13.crate", - "sha256": "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58", - "dest": "cargo/vendor/pin-project-lite-0.2.13" + "url": "https://static.crates.io/crates/parking_lot/parking_lot-0.12.1.crate", + "sha256": "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f", + "dest": "cargo/vendor/parking_lot-0.12.1" }, { "type": "inline", - "contents": "{\"package\": \"8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58\", \"files\": {}}", - "dest": "cargo/vendor/pin-project-lite-0.2.13", + "contents": "{\"package\": \"3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f\", \"files\": {}}", + "dest": "cargo/vendor/parking_lot-0.12.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.9.9.crate", + "sha256": "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e", + "dest": "cargo/vendor/parking_lot_core-0.9.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e\", \"files\": {}}", + "dest": "cargo/vendor/parking_lot_core-0.9.9", + "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.14.crate", + "sha256": "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02", + "dest": "cargo/vendor/pin-project-lite-0.2.14" + }, + { + "type": "inline", + "contents": "{\"package\": \"bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02\", \"files\": {}}", + "dest": "cargo/vendor/pin-project-lite-0.2.14", "dest-filename": ".cargo-checksum.json" }, { @@ -1016,40 +1081,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/pkg-config/pkg-config-0.3.27.crate", - "sha256": "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964", - "dest": "cargo/vendor/pkg-config-0.3.27" + "url": "https://static.crates.io/crates/pkg-config/pkg-config-0.3.30.crate", + "sha256": "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec", + "dest": "cargo/vendor/pkg-config-0.3.30" }, { "type": "inline", - "contents": "{\"package\": \"26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964\", \"files\": {}}", - "dest": "cargo/vendor/pkg-config-0.3.27", + "contents": "{\"package\": \"d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec\", \"files\": {}}", + "dest": "cargo/vendor/pkg-config-0.3.30", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-1.3.1.crate", - "sha256": "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919", - "dest": "cargo/vendor/proc-macro-crate-1.3.1" + "url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-3.1.0.crate", + "sha256": "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284", + "dest": "cargo/vendor/proc-macro-crate-3.1.0" }, { "type": "inline", - "contents": "{\"package\": \"7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919\", \"files\": {}}", - "dest": "cargo/vendor/proc-macro-crate-1.3.1", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-2.0.0.crate", - "sha256": "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8", - "dest": "cargo/vendor/proc-macro-crate-2.0.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8\", \"files\": {}}", - "dest": "cargo/vendor/proc-macro-crate-2.0.0", + "contents": "{\"package\": \"6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro-crate-3.1.0", "dest-filename": ".cargo-checksum.json" }, { @@ -1081,40 +1133,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.70.crate", - "sha256": "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b", - "dest": "cargo/vendor/proc-macro2-1.0.70" + "url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.81.crate", + "sha256": "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba", + "dest": "cargo/vendor/proc-macro2-1.0.81" }, { "type": "inline", - "contents": "{\"package\": \"39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b\", \"files\": {}}", - "dest": "cargo/vendor/proc-macro2-1.0.70", + "contents": "{\"package\": \"3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro2-1.0.81", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/quote/quote-1.0.33.crate", - "sha256": "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae", - "dest": "cargo/vendor/quote-1.0.33" + "url": "https://static.crates.io/crates/quote/quote-1.0.36.crate", + "sha256": "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7", + "dest": "cargo/vendor/quote-1.0.36" }, { "type": "inline", - "contents": "{\"package\": \"5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae\", \"files\": {}}", - "dest": "cargo/vendor/quote-1.0.33", + "contents": "{\"package\": \"0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7\", \"files\": {}}", + "dest": "cargo/vendor/quote-1.0.36", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/re_set-lib/re_set-lib-0.8.7.crate", - "sha256": "31baa92abef5520f3566949e443ad10fee6a7f6029fda106f9a7850488019574", - "dest": "cargo/vendor/re_set-lib-0.8.7" + "url": "https://static.crates.io/crates/re_set-lib/re_set-lib-5.2.4.crate", + "sha256": "f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e", + "dest": "cargo/vendor/re_set-lib-5.2.4" }, { "type": "inline", - "contents": "{\"package\": \"31baa92abef5520f3566949e443ad10fee6a7f6029fda106f9a7850488019574\", \"files\": {}}", - "dest": "cargo/vendor/re_set-lib-0.8.7", + "contents": "{\"package\": \"f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e\", \"files\": {}}", + "dest": "cargo/vendor/re_set-lib-5.2.4", "dest-filename": ".cargo-checksum.json" }, { @@ -1133,27 +1185,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/redox_users/redox_users-0.4.4.crate", - "sha256": "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4", - "dest": "cargo/vendor/redox_users-0.4.4" + "url": "https://static.crates.io/crates/reset_daemon/reset_daemon-2.1.3.crate", + "sha256": "aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79", + "dest": "cargo/vendor/reset_daemon-2.1.3" }, { "type": "inline", - "contents": "{\"package\": \"a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4\", \"files\": {}}", - "dest": "cargo/vendor/redox_users-0.4.4", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/reset_daemon/reset_daemon-0.7.0.crate", - "sha256": "e6126bce7f51d2626d96a3dc04c3c6e88b13fde10c347a7c5e503ca62295040a", - "dest": "cargo/vendor/reset_daemon-0.7.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"e6126bce7f51d2626d96a3dc04c3c6e88b13fde10c347a7c5e503ca62295040a\", \"files\": {}}", - "dest": "cargo/vendor/reset_daemon-0.7.0", + "contents": "{\"package\": \"aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79\", \"files\": {}}", + "dest": "cargo/vendor/reset_daemon-2.1.3", "dest-filename": ".cargo-checksum.json" }, { @@ -1185,53 +1224,92 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/semver/semver-1.0.20.crate", - "sha256": "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090", - "dest": "cargo/vendor/semver-1.0.20" + "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\": \"836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090\", \"files\": {}}", - "dest": "cargo/vendor/semver-1.0.20", + "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/serde/serde-1.0.193.crate", - "sha256": "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89", - "dest": "cargo/vendor/serde-1.0.193" + "url": "https://static.crates.io/crates/semver/semver-1.0.22.crate", + "sha256": "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca", + "dest": "cargo/vendor/semver-1.0.22" }, { "type": "inline", - "contents": "{\"package\": \"25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89\", \"files\": {}}", - "dest": "cargo/vendor/serde-1.0.193", + "contents": "{\"package\": \"92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca\", \"files\": {}}", + "dest": "cargo/vendor/semver-1.0.22", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.193.crate", - "sha256": "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3", - "dest": "cargo/vendor/serde_derive-1.0.193" + "url": "https://static.crates.io/crates/serde/serde-1.0.198.crate", + "sha256": "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc", + "dest": "cargo/vendor/serde-1.0.198" }, { "type": "inline", - "contents": "{\"package\": \"43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3\", \"files\": {}}", - "dest": "cargo/vendor/serde_derive-1.0.193", + "contents": "{\"package\": \"9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc\", \"files\": {}}", + "dest": "cargo/vendor/serde-1.0.198", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.4.crate", - "sha256": "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80", - "dest": "cargo/vendor/serde_spanned-0.6.4" + "url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.198.crate", + "sha256": "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9", + "dest": "cargo/vendor/serde_derive-1.0.198" }, { "type": "inline", - "contents": "{\"package\": \"12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80\", \"files\": {}}", - "dest": "cargo/vendor/serde_spanned-0.6.4", + "contents": "{\"package\": \"e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9\", \"files\": {}}", + "dest": "cargo/vendor/serde_derive-1.0.198", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.5.crate", + "sha256": "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1", + "dest": "cargo/vendor/serde_spanned-0.6.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1\", \"files\": {}}", + "dest": "cargo/vendor/serde_spanned-0.6.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serial_test/serial_test-3.0.0.crate", + "sha256": "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d", + "dest": "cargo/vendor/serial_test-3.0.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d\", \"files\": {}}", + "dest": "cargo/vendor/serial_test-3.0.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serial_test_derive/serial_test_derive-3.0.0.crate", + "sha256": "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212", + "dest": "cargo/vendor/serial_test_derive-3.0.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212\", \"files\": {}}", + "dest": "cargo/vendor/serial_test_derive-3.0.0", "dest-filename": ".cargo-checksum.json" }, { @@ -1250,27 +1328,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/smallvec/smallvec-1.11.2.crate", - "sha256": "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970", - "dest": "cargo/vendor/smallvec-1.11.2" + "url": "https://static.crates.io/crates/smallvec/smallvec-1.13.2.crate", + "sha256": "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67", + "dest": "cargo/vendor/smallvec-1.13.2" }, { "type": "inline", - "contents": "{\"package\": \"4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970\", \"files\": {}}", - "dest": "cargo/vendor/smallvec-1.11.2", + "contents": "{\"package\": \"3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67\", \"files\": {}}", + "dest": "cargo/vendor/smallvec-1.13.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/socket2/socket2-0.5.5.crate", - "sha256": "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9", - "dest": "cargo/vendor/socket2-0.5.5" + "url": "https://static.crates.io/crates/socket2/socket2-0.5.6.crate", + "sha256": "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871", + "dest": "cargo/vendor/socket2-0.5.6" }, { "type": "inline", - "contents": "{\"package\": \"7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9\", \"files\": {}}", - "dest": "cargo/vendor/socket2-0.5.5", + "contents": "{\"package\": \"05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871\", \"files\": {}}", + "dest": "cargo/vendor/socket2-0.5.6", "dest-filename": ".cargo-checksum.json" }, { @@ -1289,79 +1367,79 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/syn/syn-2.0.39.crate", - "sha256": "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a", - "dest": "cargo/vendor/syn-2.0.39" + "url": "https://static.crates.io/crates/syn/syn-2.0.59.crate", + "sha256": "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a", + "dest": "cargo/vendor/syn-2.0.59" }, { "type": "inline", - "contents": "{\"package\": \"23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a\", \"files\": {}}", - "dest": "cargo/vendor/syn-2.0.39", + "contents": "{\"package\": \"4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a\", \"files\": {}}", + "dest": "cargo/vendor/syn-2.0.59", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/system-deps/system-deps-6.2.0.crate", - "sha256": "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331", - "dest": "cargo/vendor/system-deps-6.2.0" + "url": "https://static.crates.io/crates/system-deps/system-deps-6.2.2.crate", + "sha256": "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349", + "dest": "cargo/vendor/system-deps-6.2.2" }, { "type": "inline", - "contents": "{\"package\": \"2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331\", \"files\": {}}", - "dest": "cargo/vendor/system-deps-6.2.0", + "contents": "{\"package\": \"a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349\", \"files\": {}}", + "dest": "cargo/vendor/system-deps-6.2.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/target-lexicon/target-lexicon-0.12.12.crate", - "sha256": "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a", - "dest": "cargo/vendor/target-lexicon-0.12.12" + "url": "https://static.crates.io/crates/target-lexicon/target-lexicon-0.12.14.crate", + "sha256": "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f", + "dest": "cargo/vendor/target-lexicon-0.12.14" }, { "type": "inline", - "contents": "{\"package\": \"14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a\", \"files\": {}}", - "dest": "cargo/vendor/target-lexicon-0.12.12", + "contents": "{\"package\": \"e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f\", \"files\": {}}", + "dest": "cargo/vendor/target-lexicon-0.12.14", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/thiserror/thiserror-1.0.50.crate", - "sha256": "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2", - "dest": "cargo/vendor/thiserror-1.0.50" + "url": "https://static.crates.io/crates/thiserror/thiserror-1.0.58.crate", + "sha256": "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297", + "dest": "cargo/vendor/thiserror-1.0.58" }, { "type": "inline", - "contents": "{\"package\": \"f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2\", \"files\": {}}", - "dest": "cargo/vendor/thiserror-1.0.50", + "contents": "{\"package\": \"03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-1.0.58", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.50.crate", - "sha256": "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8", - "dest": "cargo/vendor/thiserror-impl-1.0.50" + "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.58.crate", + "sha256": "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7", + "dest": "cargo/vendor/thiserror-impl-1.0.58" }, { "type": "inline", - "contents": "{\"package\": \"266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8\", \"files\": {}}", - "dest": "cargo/vendor/thiserror-impl-1.0.50", + "contents": "{\"package\": \"c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-impl-1.0.58", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tokio/tokio-1.34.0.crate", - "sha256": "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9", - "dest": "cargo/vendor/tokio-1.34.0" + "url": "https://static.crates.io/crates/tokio/tokio-1.37.0.crate", + "sha256": "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787", + "dest": "cargo/vendor/tokio-1.37.0" }, { "type": "inline", - "contents": "{\"package\": \"d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9\", \"files\": {}}", - "dest": "cargo/vendor/tokio-1.34.0", + "contents": "{\"package\": \"1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787\", \"files\": {}}", + "dest": "cargo/vendor/tokio-1.37.0", "dest-filename": ".cargo-checksum.json" }, { @@ -1380,14 +1458,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml/toml-0.8.8.crate", - "sha256": "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35", - "dest": "cargo/vendor/toml-0.8.8" + "url": "https://static.crates.io/crates/toml/toml-0.8.12.crate", + "sha256": "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3", + "dest": "cargo/vendor/toml-0.8.12" }, { "type": "inline", - "contents": "{\"package\": \"a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35\", \"files\": {}}", - "dest": "cargo/vendor/toml-0.8.8", + "contents": "{\"package\": \"e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3\", \"files\": {}}", + "dest": "cargo/vendor/toml-0.8.12", "dest-filename": ".cargo-checksum.json" }, { @@ -1406,40 +1484,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.19.15.crate", - "sha256": "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421", - "dest": "cargo/vendor/toml_edit-0.19.15" + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.21.1.crate", + "sha256": "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1", + "dest": "cargo/vendor/toml_edit-0.21.1" }, { "type": "inline", - "contents": "{\"package\": \"1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421\", \"files\": {}}", - "dest": "cargo/vendor/toml_edit-0.19.15", + "contents": "{\"package\": \"6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.21.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.20.7.crate", - "sha256": "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81", - "dest": "cargo/vendor/toml_edit-0.20.7" + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.22.9.crate", + "sha256": "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4", + "dest": "cargo/vendor/toml_edit-0.22.9" }, { "type": "inline", - "contents": "{\"package\": \"70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81\", \"files\": {}}", - "dest": "cargo/vendor/toml_edit-0.20.7", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.21.0.crate", - "sha256": "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03", - "dest": "cargo/vendor/toml_edit-0.21.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03\", \"files\": {}}", - "dest": "cargo/vendor/toml_edit-0.21.0", + "contents": "{\"package\": \"8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.22.9", "dest-filename": ".cargo-checksum.json" }, { @@ -1458,14 +1523,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/version-compare/version-compare-0.1.1.crate", - "sha256": "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29", - "dest": "cargo/vendor/version-compare-0.1.1" + "url": "https://static.crates.io/crates/version-compare/version-compare-0.2.0.crate", + "sha256": "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b", + "dest": "cargo/vendor/version-compare-0.2.0" }, { "type": "inline", - "contents": "{\"package\": \"579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29\", \"files\": {}}", - "dest": "cargo/vendor/version-compare-0.1.1", + "contents": "{\"package\": \"852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b\", \"files\": {}}", + "dest": "cargo/vendor/version-compare-0.2.0", "dest-filename": ".cargo-checksum.json" }, { @@ -1546,6 +1611,19 @@ "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.52.0.crate", + "sha256": "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d", + "dest": "cargo/vendor/windows-sys-0.52.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\", \"files\": {}}", + "dest": "cargo/vendor/windows-sys-0.52.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1559,6 +1637,19 @@ "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-targets/windows-targets-0.52.5.crate", + "sha256": "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb", + "dest": "cargo/vendor/windows-targets-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb\", \"files\": {}}", + "dest": "cargo/vendor/windows-targets-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1572,6 +1663,19 @@ "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_gnullvm/windows_aarch64_gnullvm-0.52.5.crate", + "sha256": "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1585,6 +1689,19 @@ "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_aarch64_msvc/windows_aarch64_msvc-0.52.5.crate", + "sha256": "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6", + "dest": "cargo/vendor/windows_aarch64_msvc-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_msvc-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1598,6 +1715,32 @@ "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_gnu/windows_i686_gnu-0.52.5.crate", + "sha256": "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670", + "dest": "cargo/vendor/windows_i686_gnu-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnu-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_i686_gnullvm/windows_i686_gnullvm-0.52.5.crate", + "sha256": "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9", + "dest": "cargo/vendor/windows_i686_gnullvm-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnullvm-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1611,6 +1754,19 @@ "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_i686_msvc/windows_i686_msvc-0.52.5.crate", + "sha256": "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf", + "dest": "cargo/vendor/windows_i686_msvc-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_msvc-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1624,6 +1780,19 @@ "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_gnu/windows_x86_64_gnu-0.52.5.crate", + "sha256": "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9", + "dest": "cargo/vendor/windows_x86_64_gnu-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnu-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1637,6 +1806,19 @@ "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_gnullvm/windows_x86_64_gnullvm-0.52.5.crate", + "sha256": "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1653,14 +1835,53 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/winnow/winnow-0.5.19.crate", - "sha256": "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b", - "dest": "cargo/vendor/winnow-0.5.19" + "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.52.5.crate", + "sha256": "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0", + "dest": "cargo/vendor/windows_x86_64_msvc-0.52.5" }, { "type": "inline", - "contents": "{\"package\": \"829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b\", \"files\": {}}", - "dest": "cargo/vendor/winnow-0.5.19", + "contents": "{\"package\": \"bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_msvc-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winnow/winnow-0.5.40.crate", + "sha256": "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876", + "dest": "cargo/vendor/winnow-0.5.40" + }, + { + "type": "inline", + "contents": "{\"package\": \"f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876\", \"files\": {}}", + "dest": "cargo/vendor/winnow-0.5.40", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winnow/winnow-0.6.6.crate", + "sha256": "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352", + "dest": "cargo/vendor/winnow-0.6.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352\", \"files\": {}}", + "dest": "cargo/vendor/winnow-0.6.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/xdg/xdg-2.5.2.crate", + "sha256": "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546", + "dest": "cargo/vendor/xdg-2.5.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546\", \"files\": {}}", + "dest": "cargo/vendor/xdg-2.5.2", "dest-filename": ".cargo-checksum.json" }, { diff --git a/flatpak/generated-sources.json b/flatpak/generated-sources.json new file mode 100644 index 0000000..506ad9b --- /dev/null +++ b/flatpak/generated-sources.json @@ -0,0 +1,1893 @@ +[ + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/addr2line/addr2line-0.21.0.crate", + "sha256": "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb", + "dest": "cargo/vendor/addr2line-0.21.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb\", \"files\": {}}", + "dest": "cargo/vendor/addr2line-0.21.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/adler/adler-1.0.2.crate", + "sha256": "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe", + "dest": "cargo/vendor/adler-1.0.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe\", \"files\": {}}", + "dest": "cargo/vendor/adler-1.0.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/anyhow/anyhow-1.0.82.crate", + "sha256": "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519", + "dest": "cargo/vendor/anyhow-1.0.82" + }, + { + "type": "inline", + "contents": "{\"package\": \"f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519\", \"files\": {}}", + "dest": "cargo/vendor/anyhow-1.0.82", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/autocfg/autocfg-1.2.0.crate", + "sha256": "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80", + "dest": "cargo/vendor/autocfg-1.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80\", \"files\": {}}", + "dest": "cargo/vendor/autocfg-1.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/backtrace/backtrace-0.3.71.crate", + "sha256": "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d", + "dest": "cargo/vendor/backtrace-0.3.71" + }, + { + "type": "inline", + "contents": "{\"package\": \"26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d\", \"files\": {}}", + "dest": "cargo/vendor/backtrace-0.3.71", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate", + "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a", + "dest": "cargo/vendor/bitflags-1.3.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a\", \"files\": {}}", + "dest": "cargo/vendor/bitflags-1.3.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/bitflags/bitflags-2.5.0.crate", + "sha256": "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1", + "dest": "cargo/vendor/bitflags-2.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1\", \"files\": {}}", + "dest": "cargo/vendor/bitflags-2.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cairo-rs/cairo-rs-0.19.4.crate", + "sha256": "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562", + "dest": "cargo/vendor/cairo-rs-0.19.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562\", \"files\": {}}", + "dest": "cargo/vendor/cairo-rs-0.19.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cairo-sys-rs/cairo-sys-rs-0.19.2.crate", + "sha256": "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64", + "dest": "cargo/vendor/cairo-sys-rs-0.19.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64\", \"files\": {}}", + "dest": "cargo/vendor/cairo-sys-rs-0.19.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cc/cc-1.0.94.crate", + "sha256": "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7", + "dest": "cargo/vendor/cc-1.0.94" + }, + { + "type": "inline", + "contents": "{\"package\": \"17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7\", \"files\": {}}", + "dest": "cargo/vendor/cc-1.0.94", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cfg-expr/cfg-expr-0.15.8.crate", + "sha256": "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02", + "dest": "cargo/vendor/cfg-expr-0.15.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02\", \"files\": {}}", + "dest": "cargo/vendor/cfg-expr-0.15.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate", + "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd", + "dest": "cargo/vendor/cfg-if-1.0.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd\", \"files\": {}}", + "dest": "cargo/vendor/cfg-if-1.0.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/crossbeam/crossbeam-0.8.4.crate", + "sha256": "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8", + "dest": "cargo/vendor/crossbeam-0.8.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-0.8.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/crossbeam-channel/crossbeam-channel-0.5.12.crate", + "sha256": "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95", + "dest": "cargo/vendor/crossbeam-channel-0.5.12" + }, + { + "type": "inline", + "contents": "{\"package\": \"ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-channel-0.5.12", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.5.crate", + "sha256": "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d", + "dest": "cargo/vendor/crossbeam-deque-0.8.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-deque-0.8.5", + "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-queue/crossbeam-queue-0.3.11.crate", + "sha256": "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35", + "dest": "cargo/vendor/crossbeam-queue-0.3.11" + }, + { + "type": "inline", + "contents": "{\"package\": \"df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-queue-0.3.11", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.19.crate", + "sha256": "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345", + "dest": "cargo/vendor/crossbeam-utils-0.8.19" + }, + { + "type": "inline", + "contents": "{\"package\": \"248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345\", \"files\": {}}", + "dest": "cargo/vendor/crossbeam-utils-0.8.19", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dashmap/dashmap-5.5.3.crate", + "sha256": "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856", + "dest": "cargo/vendor/dashmap-5.5.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856\", \"files\": {}}", + "dest": "cargo/vendor/dashmap-5.5.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dbus/dbus-0.9.7.crate", + "sha256": "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b", + "dest": "cargo/vendor/dbus-0.9.7" + }, + { + "type": "inline", + "contents": "{\"package\": \"1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b\", \"files\": {}}", + "dest": "cargo/vendor/dbus-0.9.7", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dbus-crossroads/dbus-crossroads-0.5.2.crate", + "sha256": "3a4c83437187544ba5142427746835061b330446ca8902eabd70e4afb8f76de0", + "dest": "cargo/vendor/dbus-crossroads-0.5.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"3a4c83437187544ba5142427746835061b330446ca8902eabd70e4afb8f76de0\", \"files\": {}}", + "dest": "cargo/vendor/dbus-crossroads-0.5.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dbus-tokio/dbus-tokio-0.7.6.crate", + "sha256": "007688d459bc677131c063a3a77fb899526e17b7980f390b69644bdbc41fad13", + "dest": "cargo/vendor/dbus-tokio-0.7.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"007688d459bc677131c063a3a77fb899526e17b7980f390b69644bdbc41fad13\", \"files\": {}}", + "dest": "cargo/vendor/dbus-tokio-0.7.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/equivalent/equivalent-1.0.1.crate", + "sha256": "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5", + "dest": "cargo/vendor/equivalent-1.0.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5\", \"files\": {}}", + "dest": "cargo/vendor/equivalent-1.0.1", + "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/fork/fork-0.1.23.crate", + "sha256": "60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed", + "dest": "cargo/vendor/fork-0.1.23" + }, + { + "type": "inline", + "contents": "{\"package\": \"60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed\", \"files\": {}}", + "dest": "cargo/vendor/fork-0.1.23", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures/futures-0.3.30.crate", + "sha256": "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0", + "dest": "cargo/vendor/futures-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0\", \"files\": {}}", + "dest": "cargo/vendor/futures-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.30.crate", + "sha256": "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78", + "dest": "cargo/vendor/futures-channel-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78\", \"files\": {}}", + "dest": "cargo/vendor/futures-channel-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-core/futures-core-0.3.30.crate", + "sha256": "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d", + "dest": "cargo/vendor/futures-core-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d\", \"files\": {}}", + "dest": "cargo/vendor/futures-core-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-executor/futures-executor-0.3.30.crate", + "sha256": "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d", + "dest": "cargo/vendor/futures-executor-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d\", \"files\": {}}", + "dest": "cargo/vendor/futures-executor-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-io/futures-io-0.3.30.crate", + "sha256": "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1", + "dest": "cargo/vendor/futures-io-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1\", \"files\": {}}", + "dest": "cargo/vendor/futures-io-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.30.crate", + "sha256": "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac", + "dest": "cargo/vendor/futures-macro-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac\", \"files\": {}}", + "dest": "cargo/vendor/futures-macro-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-sink/futures-sink-0.3.30.crate", + "sha256": "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5", + "dest": "cargo/vendor/futures-sink-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5\", \"files\": {}}", + "dest": "cargo/vendor/futures-sink-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-task/futures-task-0.3.30.crate", + "sha256": "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004", + "dest": "cargo/vendor/futures-task-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004\", \"files\": {}}", + "dest": "cargo/vendor/futures-task-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-util/futures-util-0.3.30.crate", + "sha256": "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48", + "dest": "cargo/vendor/futures-util-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48\", \"files\": {}}", + "dest": "cargo/vendor/futures-util-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk-pixbuf/gdk-pixbuf-0.19.2.crate", + "sha256": "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92", + "dest": "cargo/vendor/gdk-pixbuf-0.19.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92\", \"files\": {}}", + "dest": "cargo/vendor/gdk-pixbuf-0.19.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk-pixbuf-sys/gdk-pixbuf-sys-0.19.0.crate", + "sha256": "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96", + "dest": "cargo/vendor/gdk-pixbuf-sys-0.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96\", \"files\": {}}", + "dest": "cargo/vendor/gdk-pixbuf-sys-0.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk4/gdk4-0.8.1.crate", + "sha256": "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b", + "dest": "cargo/vendor/gdk4-0.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b\", \"files\": {}}", + "dest": "cargo/vendor/gdk4-0.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gdk4-sys/gdk4-sys-0.8.1.crate", + "sha256": "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626", + "dest": "cargo/vendor/gdk4-sys-0.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626\", \"files\": {}}", + "dest": "cargo/vendor/gdk4-sys-0.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gimli/gimli-0.28.1.crate", + "sha256": "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253", + "dest": "cargo/vendor/gimli-0.28.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253\", \"files\": {}}", + "dest": "cargo/vendor/gimli-0.28.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gio/gio-0.19.4.crate", + "sha256": "3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845", + "dest": "cargo/vendor/gio-0.19.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845\", \"files\": {}}", + "dest": "cargo/vendor/gio-0.19.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gio-sys/gio-sys-0.19.0.crate", + "sha256": "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4", + "dest": "cargo/vendor/gio-sys-0.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4\", \"files\": {}}", + "dest": "cargo/vendor/gio-sys-0.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/glib/glib-0.19.4.crate", + "sha256": "ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7", + "dest": "cargo/vendor/glib-0.19.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7\", \"files\": {}}", + "dest": "cargo/vendor/glib-0.19.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/glib-build-tools/glib-build-tools-0.19.0.crate", + "sha256": "108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a", + "dest": "cargo/vendor/glib-build-tools-0.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a\", \"files\": {}}", + "dest": "cargo/vendor/glib-build-tools-0.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/glib-macros/glib-macros-0.19.4.crate", + "sha256": "d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71", + "dest": "cargo/vendor/glib-macros-0.19.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71\", \"files\": {}}", + "dest": "cargo/vendor/glib-macros-0.19.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/glib-sys/glib-sys-0.19.0.crate", + "sha256": "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4", + "dest": "cargo/vendor/glib-sys-0.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4\", \"files\": {}}", + "dest": "cargo/vendor/glib-sys-0.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.19.0.crate", + "sha256": "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979", + "dest": "cargo/vendor/gobject-sys-0.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979\", \"files\": {}}", + "dest": "cargo/vendor/gobject-sys-0.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/graphene-rs/graphene-rs-0.19.2.crate", + "sha256": "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91", + "dest": "cargo/vendor/graphene-rs-0.19.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91\", \"files\": {}}", + "dest": "cargo/vendor/graphene-rs-0.19.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/graphene-sys/graphene-sys-0.19.0.crate", + "sha256": "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0", + "dest": "cargo/vendor/graphene-sys-0.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0\", \"files\": {}}", + "dest": "cargo/vendor/graphene-sys-0.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gsk4/gsk4-0.8.1.crate", + "sha256": "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e", + "dest": "cargo/vendor/gsk4-0.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e\", \"files\": {}}", + "dest": "cargo/vendor/gsk4-0.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gsk4-sys/gsk4-sys-0.8.1.crate", + "sha256": "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738", + "dest": "cargo/vendor/gsk4-sys-0.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738\", \"files\": {}}", + "dest": "cargo/vendor/gsk4-sys-0.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gtk4/gtk4-0.8.1.crate", + "sha256": "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83", + "dest": "cargo/vendor/gtk4-0.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-0.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gtk4-macros/gtk4-macros-0.8.1.crate", + "sha256": "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567", + "dest": "cargo/vendor/gtk4-macros-0.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-macros-0.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gtk4-sys/gtk4-sys-0.8.1.crate", + "sha256": "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18", + "dest": "cargo/vendor/gtk4-sys-0.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18\", \"files\": {}}", + "dest": "cargo/vendor/gtk4-sys-0.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.14.3.crate", + "sha256": "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604", + "dest": "cargo/vendor/hashbrown-0.14.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604\", \"files\": {}}", + "dest": "cargo/vendor/hashbrown-0.14.3", + "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/hermit-abi/hermit-abi-0.3.9.crate", + "sha256": "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024", + "dest": "cargo/vendor/hermit-abi-0.3.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024\", \"files\": {}}", + "dest": "cargo/vendor/hermit-abi-0.3.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/indexmap/indexmap-2.2.6.crate", + "sha256": "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26", + "dest": "cargo/vendor/indexmap-2.2.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26\", \"files\": {}}", + "dest": "cargo/vendor/indexmap-2.2.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/ipnetwork/ipnetwork-0.20.0.crate", + "sha256": "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e", + "dest": "cargo/vendor/ipnetwork-0.20.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e\", \"files\": {}}", + "dest": "cargo/vendor/ipnetwork-0.20.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/lazy_static/lazy_static-1.4.0.crate", + "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646", + "dest": "cargo/vendor/lazy_static-1.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646\", \"files\": {}}", + "dest": "cargo/vendor/lazy_static-1.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libadwaita/libadwaita-0.6.0.crate", + "sha256": "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9", + "dest": "cargo/vendor/libadwaita-0.6.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9\", \"files\": {}}", + "dest": "cargo/vendor/libadwaita-0.6.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libadwaita-sys/libadwaita-sys-0.6.0.crate", + "sha256": "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8", + "dest": "cargo/vendor/libadwaita-sys-0.6.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8\", \"files\": {}}", + "dest": "cargo/vendor/libadwaita-sys-0.6.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libc/libc-0.2.153.crate", + "sha256": "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd", + "dest": "cargo/vendor/libc-0.2.153" + }, + { + "type": "inline", + "contents": "{\"package\": \"9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd\", \"files\": {}}", + "dest": "cargo/vendor/libc-0.2.153", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libdbus-sys/libdbus-sys-0.2.5.crate", + "sha256": "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72", + "dest": "cargo/vendor/libdbus-sys-0.2.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72\", \"files\": {}}", + "dest": "cargo/vendor/libdbus-sys-0.2.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libloading/libloading-0.8.3.crate", + "sha256": "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19", + "dest": "cargo/vendor/libloading-0.8.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19\", \"files\": {}}", + "dest": "cargo/vendor/libloading-0.8.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libpulse-binding/libpulse-binding-2.28.1.crate", + "sha256": "ed3557a2dfc380c8f061189a01c6ae7348354e0c9886038dc6c171219c08eaff", + "dest": "cargo/vendor/libpulse-binding-2.28.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"ed3557a2dfc380c8f061189a01c6ae7348354e0c9886038dc6c171219c08eaff\", \"files\": {}}", + "dest": "cargo/vendor/libpulse-binding-2.28.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/libpulse-sys/libpulse-sys-1.21.0.crate", + "sha256": "bc19e110fbf42c17260d30f6d3dc545f58491c7830d38ecb9aaca96e26067a9b", + "dest": "cargo/vendor/libpulse-sys-1.21.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"bc19e110fbf42c17260d30f6d3dc545f58491c7830d38ecb9aaca96e26067a9b\", \"files\": {}}", + "dest": "cargo/vendor/libpulse-sys-1.21.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/lock_api/lock_api-0.4.11.crate", + "sha256": "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45", + "dest": "cargo/vendor/lock_api-0.4.11" + }, + { + "type": "inline", + "contents": "{\"package\": \"3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45\", \"files\": {}}", + "dest": "cargo/vendor/lock_api-0.4.11", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/log/log-0.4.21.crate", + "sha256": "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c", + "dest": "cargo/vendor/log-0.4.21" + }, + { + "type": "inline", + "contents": "{\"package\": \"90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c\", \"files\": {}}", + "dest": "cargo/vendor/log-0.4.21", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/memchr/memchr-2.7.2.crate", + "sha256": "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d", + "dest": "cargo/vendor/memchr-2.7.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d\", \"files\": {}}", + "dest": "cargo/vendor/memchr-2.7.2", + "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.7.2.crate", + "sha256": "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7", + "dest": "cargo/vendor/miniz_oxide-0.7.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7\", \"files\": {}}", + "dest": "cargo/vendor/miniz_oxide-0.7.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/mio/mio-0.8.11.crate", + "sha256": "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c", + "dest": "cargo/vendor/mio-0.8.11" + }, + { + "type": "inline", + "contents": "{\"package\": \"a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c\", \"files\": {}}", + "dest": "cargo/vendor/mio-0.8.11", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/num-derive/num-derive-0.3.3.crate", + "sha256": "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d", + "dest": "cargo/vendor/num-derive-0.3.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d\", \"files\": {}}", + "dest": "cargo/vendor/num-derive-0.3.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/num-traits/num-traits-0.2.18.crate", + "sha256": "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a", + "dest": "cargo/vendor/num-traits-0.2.18" + }, + { + "type": "inline", + "contents": "{\"package\": \"da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a\", \"files\": {}}", + "dest": "cargo/vendor/num-traits-0.2.18", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/num_cpus/num_cpus-1.16.0.crate", + "sha256": "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43", + "dest": "cargo/vendor/num_cpus-1.16.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43\", \"files\": {}}", + "dest": "cargo/vendor/num_cpus-1.16.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/object/object-0.32.2.crate", + "sha256": "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441", + "dest": "cargo/vendor/object-0.32.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441\", \"files\": {}}", + "dest": "cargo/vendor/object-0.32.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/once_cell/once_cell-1.19.0.crate", + "sha256": "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92", + "dest": "cargo/vendor/once_cell-1.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92\", \"files\": {}}", + "dest": "cargo/vendor/once_cell-1.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pango/pango-0.19.3.crate", + "sha256": "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1", + "dest": "cargo/vendor/pango-0.19.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1\", \"files\": {}}", + "dest": "cargo/vendor/pango-0.19.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pango-sys/pango-sys-0.19.0.crate", + "sha256": "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea", + "dest": "cargo/vendor/pango-sys-0.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea\", \"files\": {}}", + "dest": "cargo/vendor/pango-sys-0.19.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/parking_lot/parking_lot-0.12.1.crate", + "sha256": "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f", + "dest": "cargo/vendor/parking_lot-0.12.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f\", \"files\": {}}", + "dest": "cargo/vendor/parking_lot-0.12.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.9.9.crate", + "sha256": "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e", + "dest": "cargo/vendor/parking_lot_core-0.9.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e\", \"files\": {}}", + "dest": "cargo/vendor/parking_lot_core-0.9.9", + "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.14.crate", + "sha256": "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02", + "dest": "cargo/vendor/pin-project-lite-0.2.14" + }, + { + "type": "inline", + "contents": "{\"package\": \"bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02\", \"files\": {}}", + "dest": "cargo/vendor/pin-project-lite-0.2.14", + "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.30.crate", + "sha256": "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec", + "dest": "cargo/vendor/pkg-config-0.3.30" + }, + { + "type": "inline", + "contents": "{\"package\": \"d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec\", \"files\": {}}", + "dest": "cargo/vendor/pkg-config-0.3.30", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-3.1.0.crate", + "sha256": "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284", + "dest": "cargo/vendor/proc-macro-crate-3.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro-crate-3.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/proc-macro-error/proc-macro-error-1.0.4.crate", + "sha256": "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c", + "dest": "cargo/vendor/proc-macro-error-1.0.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro-error-1.0.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/proc-macro-error-attr/proc-macro-error-attr-1.0.4.crate", + "sha256": "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869", + "dest": "cargo/vendor/proc-macro-error-attr-1.0.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro-error-attr-1.0.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.81.crate", + "sha256": "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba", + "dest": "cargo/vendor/proc-macro2-1.0.81" + }, + { + "type": "inline", + "contents": "{\"package\": \"3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro2-1.0.81", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/quote/quote-1.0.36.crate", + "sha256": "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7", + "dest": "cargo/vendor/quote-1.0.36" + }, + { + "type": "inline", + "contents": "{\"package\": \"0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7\", \"files\": {}}", + "dest": "cargo/vendor/quote-1.0.36", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/re_set-lib/re_set-lib-5.2.4.crate", + "sha256": "f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e", + "dest": "cargo/vendor/re_set-lib-5.2.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e\", \"files\": {}}", + "dest": "cargo/vendor/re_set-lib-5.2.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/redox_syscall/redox_syscall-0.4.1.crate", + "sha256": "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa", + "dest": "cargo/vendor/redox_syscall-0.4.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa\", \"files\": {}}", + "dest": "cargo/vendor/redox_syscall-0.4.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/reset_daemon/reset_daemon-2.1.3.crate", + "sha256": "aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79", + "dest": "cargo/vendor/reset_daemon-2.1.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79\", \"files\": {}}", + "dest": "cargo/vendor/reset_daemon-2.1.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rustc-demangle/rustc-demangle-0.1.23.crate", + "sha256": "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76", + "dest": "cargo/vendor/rustc-demangle-0.1.23" + }, + { + "type": "inline", + "contents": "{\"package\": \"d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76\", \"files\": {}}", + "dest": "cargo/vendor/rustc-demangle-0.1.23", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rustc_version/rustc_version-0.4.0.crate", + "sha256": "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366", + "dest": "cargo/vendor/rustc_version-0.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366\", \"files\": {}}", + "dest": "cargo/vendor/rustc_version-0.4.0", + "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.22.crate", + "sha256": "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca", + "dest": "cargo/vendor/semver-1.0.22" + }, + { + "type": "inline", + "contents": "{\"package\": \"92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca\", \"files\": {}}", + "dest": "cargo/vendor/semver-1.0.22", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde/serde-1.0.198.crate", + "sha256": "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc", + "dest": "cargo/vendor/serde-1.0.198" + }, + { + "type": "inline", + "contents": "{\"package\": \"9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc\", \"files\": {}}", + "dest": "cargo/vendor/serde-1.0.198", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.198.crate", + "sha256": "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9", + "dest": "cargo/vendor/serde_derive-1.0.198" + }, + { + "type": "inline", + "contents": "{\"package\": \"e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9\", \"files\": {}}", + "dest": "cargo/vendor/serde_derive-1.0.198", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.5.crate", + "sha256": "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1", + "dest": "cargo/vendor/serde_spanned-0.6.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1\", \"files\": {}}", + "dest": "cargo/vendor/serde_spanned-0.6.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serial_test/serial_test-3.0.0.crate", + "sha256": "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d", + "dest": "cargo/vendor/serial_test-3.0.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d\", \"files\": {}}", + "dest": "cargo/vendor/serial_test-3.0.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serial_test_derive/serial_test_derive-3.0.0.crate", + "sha256": "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212", + "dest": "cargo/vendor/serial_test_derive-3.0.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212\", \"files\": {}}", + "dest": "cargo/vendor/serial_test_derive-3.0.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/slab/slab-0.4.9.crate", + "sha256": "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67", + "dest": "cargo/vendor/slab-0.4.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67\", \"files\": {}}", + "dest": "cargo/vendor/slab-0.4.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/smallvec/smallvec-1.13.2.crate", + "sha256": "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67", + "dest": "cargo/vendor/smallvec-1.13.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67\", \"files\": {}}", + "dest": "cargo/vendor/smallvec-1.13.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/socket2/socket2-0.5.6.crate", + "sha256": "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871", + "dest": "cargo/vendor/socket2-0.5.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871\", \"files\": {}}", + "dest": "cargo/vendor/socket2-0.5.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/syn/syn-1.0.109.crate", + "sha256": "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237", + "dest": "cargo/vendor/syn-1.0.109" + }, + { + "type": "inline", + "contents": "{\"package\": \"72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237\", \"files\": {}}", + "dest": "cargo/vendor/syn-1.0.109", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/syn/syn-2.0.59.crate", + "sha256": "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a", + "dest": "cargo/vendor/syn-2.0.59" + }, + { + "type": "inline", + "contents": "{\"package\": \"4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a\", \"files\": {}}", + "dest": "cargo/vendor/syn-2.0.59", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/system-deps/system-deps-6.2.2.crate", + "sha256": "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349", + "dest": "cargo/vendor/system-deps-6.2.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349\", \"files\": {}}", + "dest": "cargo/vendor/system-deps-6.2.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/target-lexicon/target-lexicon-0.12.14.crate", + "sha256": "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f", + "dest": "cargo/vendor/target-lexicon-0.12.14" + }, + { + "type": "inline", + "contents": "{\"package\": \"e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f\", \"files\": {}}", + "dest": "cargo/vendor/target-lexicon-0.12.14", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thiserror/thiserror-1.0.58.crate", + "sha256": "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297", + "dest": "cargo/vendor/thiserror-1.0.58" + }, + { + "type": "inline", + "contents": "{\"package\": \"03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-1.0.58", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.58.crate", + "sha256": "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7", + "dest": "cargo/vendor/thiserror-impl-1.0.58" + }, + { + "type": "inline", + "contents": "{\"package\": \"c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-impl-1.0.58", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio/tokio-1.37.0.crate", + "sha256": "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787", + "dest": "cargo/vendor/tokio-1.37.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787\", \"files\": {}}", + "dest": "cargo/vendor/tokio-1.37.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio-macros/tokio-macros-2.2.0.crate", + "sha256": "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b", + "dest": "cargo/vendor/tokio-macros-2.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b\", \"files\": {}}", + "dest": "cargo/vendor/tokio-macros-2.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml/toml-0.8.12.crate", + "sha256": "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3", + "dest": "cargo/vendor/toml-0.8.12" + }, + { + "type": "inline", + "contents": "{\"package\": \"e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3\", \"files\": {}}", + "dest": "cargo/vendor/toml-0.8.12", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.5.crate", + "sha256": "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1", + "dest": "cargo/vendor/toml_datetime-0.6.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1\", \"files\": {}}", + "dest": "cargo/vendor/toml_datetime-0.6.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.21.1.crate", + "sha256": "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1", + "dest": "cargo/vendor/toml_edit-0.21.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.21.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.22.9.crate", + "sha256": "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4", + "dest": "cargo/vendor/toml_edit-0.22.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.22.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.12.crate", + "sha256": "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b", + "dest": "cargo/vendor/unicode-ident-1.0.12" + }, + { + "type": "inline", + "contents": "{\"package\": \"3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b\", \"files\": {}}", + "dest": "cargo/vendor/unicode-ident-1.0.12", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/version-compare/version-compare-0.2.0.crate", + "sha256": "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b", + "dest": "cargo/vendor/version-compare-0.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b\", \"files\": {}}", + "dest": "cargo/vendor/version-compare-0.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/version_check/version_check-0.9.4.crate", + "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f", + "dest": "cargo/vendor/version_check-0.9.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f\", \"files\": {}}", + "dest": "cargo/vendor/version_check-0.9.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate", + "sha256": "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423", + "dest": "cargo/vendor/wasi-0.11.0+wasi-snapshot-preview1" + }, + { + "type": "inline", + "contents": "{\"package\": \"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423\", \"files\": {}}", + "dest": "cargo/vendor/wasi-0.11.0+wasi-snapshot-preview1", + "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-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-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.52.0.crate", + "sha256": "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d", + "dest": "cargo/vendor/windows-sys-0.52.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\", \"files\": {}}", + "dest": "cargo/vendor/windows-sys-0.52.0", + "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-targets/windows-targets-0.52.5.crate", + "sha256": "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb", + "dest": "cargo/vendor/windows-targets-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb\", \"files\": {}}", + "dest": "cargo/vendor/windows-targets-0.52.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_gnullvm/windows_aarch64_gnullvm-0.52.5.crate", + "sha256": "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.52.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_aarch64_msvc/windows_aarch64_msvc-0.52.5.crate", + "sha256": "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6", + "dest": "cargo/vendor/windows_aarch64_msvc-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_msvc-0.52.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_gnu/windows_i686_gnu-0.52.5.crate", + "sha256": "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670", + "dest": "cargo/vendor/windows_i686_gnu-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnu-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/windows_i686_gnullvm/windows_i686_gnullvm-0.52.5.crate", + "sha256": "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9", + "dest": "cargo/vendor/windows_i686_gnullvm-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnullvm-0.52.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_i686_msvc/windows_i686_msvc-0.52.5.crate", + "sha256": "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf", + "dest": "cargo/vendor/windows_i686_msvc-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_msvc-0.52.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_gnu/windows_x86_64_gnu-0.52.5.crate", + "sha256": "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9", + "dest": "cargo/vendor/windows_x86_64_gnu-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnu-0.52.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_gnullvm/windows_x86_64_gnullvm-0.52.5.crate", + "sha256": "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.52.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/windows_x86_64_msvc/windows_x86_64_msvc-0.52.5.crate", + "sha256": "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0", + "dest": "cargo/vendor/windows_x86_64_msvc-0.52.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_msvc-0.52.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winnow/winnow-0.5.40.crate", + "sha256": "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876", + "dest": "cargo/vendor/winnow-0.5.40" + }, + { + "type": "inline", + "contents": "{\"package\": \"f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876\", \"files\": {}}", + "dest": "cargo/vendor/winnow-0.5.40", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winnow/winnow-0.6.6.crate", + "sha256": "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352", + "dest": "cargo/vendor/winnow-0.6.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352\", \"files\": {}}", + "dest": "cargo/vendor/winnow-0.6.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/xdg/xdg-2.5.2.crate", + "sha256": "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546", + "dest": "cargo/vendor/xdg-2.5.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546\", \"files\": {}}", + "dest": "cargo/vendor/xdg-2.5.2", + "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/flatpak/org.Xetibo.ReSet.json.wip b/flatpak/org.Xetibo.ReSet-debug.json similarity index 72% rename from flatpak/org.Xetibo.ReSet.json.wip rename to flatpak/org.Xetibo.ReSet-debug.json index cd01a11..93a6c48 100644 --- a/flatpak/org.Xetibo.ReSet.json.wip +++ b/flatpak/org.Xetibo.ReSet-debug.json @@ -1,15 +1,13 @@ { "app-id": "org.Xetibo.ReSet", "runtime": "org.gnome.Platform", - "runtime-version": "45", + "runtime-version": "46", "sdk": "org.gnome.Sdk", "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.rust-stable" + "org.freedesktop.Sdk.Extension.rust-nightly" ], - "command": "reset", + "command": "ReSet", "finish-args": [ - "--system-talk-name=org.freedesktop.NetworkManager", - "--system-talk-name=org.bluez", "--socket=pulseaudio", "--share=network", "--share=ipc", @@ -17,10 +15,12 @@ "--socket=wayland", "--device=dri", "--device=all", - "--allow=bluetooth" + "--allow=bluetooth", + "--socket=system-bus", + "--socket=session-bus" ], "build-options": { - "append-path": "/usr/lib/sdk/rust-stable/bin" + "append-path": "/usr/lib/sdk/rust-nightly/bin" }, "modules": [ { @@ -33,8 +33,8 @@ }, "build-commands": [ "cargo --offline fetch --manifest-path Cargo.toml --verbose", - "cargo --offline build --release --verbose", - "install -Dm755 ./target/release/reset -t /app/bin/", + "cargo --offline build --verbose", + "install -Dm755 ./target/debug/ReSet -t /app/bin/", "install -Dm644 ./src/resources/icons/ReSet.svg /app/share/icons/hicolor/scalable/apps/org.Xetibo.ReSet.svg", "install -Dm644 ./flatpak/org.Xetibo.ReSet.desktop /app/share/applications/org.Xetibo.ReSet.desktop" ], diff --git a/flatpak/org.Xetibo.ReSet.desktop b/flatpak/org.Xetibo.ReSet.desktop index 2224aab..fb8e145 100644 --- a/flatpak/org.Xetibo.ReSet.desktop +++ b/flatpak/org.Xetibo.ReSet.desktop @@ -2,7 +2,7 @@ Name=ReSet GenericName=SettingsApplication GenericName[de]=SettingsApplikation -Exec=reset +Exec=ReSet Terminal=false Type=Application Keywords=settings;gtk; diff --git a/flatpak/org.Xetibo.ReSet.json b/flatpak/org.Xetibo.ReSet.json index bc63cf5..532a4d4 100644 --- a/flatpak/org.Xetibo.ReSet.json +++ b/flatpak/org.Xetibo.ReSet.json @@ -1,12 +1,12 @@ { "app-id": "org.Xetibo.ReSet", "runtime": "org.gnome.Platform", - "runtime-version": "45", + "runtime-version": "46", "sdk": "org.gnome.Sdk", "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.rust-stable" + "org.freedesktop.Sdk.Extension.rust-nightly" ], - "command": "reset", + "command": "ReSet", "finish-args": [ "--socket=pulseaudio", "--share=network", @@ -17,10 +17,11 @@ "--device=all", "--allow=bluetooth", "--socket=system-bus", - "--socket=session-bus" + "--socket=session-bus", + "--persist=~/.config/reset:create" ], "build-options": { - "append-path": "/usr/lib/sdk/rust-stable/bin" + "append-path": "/usr/lib/sdk/rust-nightly/bin" }, "modules": [ { @@ -34,7 +35,7 @@ "build-commands": [ "cargo --offline fetch --manifest-path Cargo.toml --verbose", "cargo --offline build --release --verbose", - "install -Dm755 ./target/release/reset -t /app/bin/", + "install -Dm755 ./target/release/ReSet -t /app/bin/", "install -Dm644 ./src/resources/icons/ReSet.svg /app/share/icons/hicolor/scalable/apps/org.Xetibo.ReSet.svg", "install -Dm644 ./flatpak/org.Xetibo.ReSet.desktop /app/share/applications/org.Xetibo.ReSet.desktop" ], diff --git a/nix/default.nix b/nix/default.nix new file mode 100644 index 0000000..80fdbe5 --- /dev/null +++ b/nix/default.nix @@ -0,0 +1,69 @@ +{ + rustPlatform, + rust-bin, + pulseaudio, + dbus, + gdk-pixbuf, + adwaita-icon-theme, + pkg-config, + wrapGAppsHook4, + gtk4, + libadwaita, + python312Packages, + flatpak, + flatpak-builder, + lib, + lockFile, + ... +}: let + cargoToml = builtins.fromTOML (builtins.readFile ../Cargo.toml); +in + rustPlatform.buildRustPackage rec { + pname = "ReSet"; + version = cargoToml.package.version; + + src = ../.; + + buildInputs = [ + gtk4 + libadwaita + pulseaudio + dbus + gdk-pixbuf + adwaita-icon-theme + python312Packages.aiohttp + python312Packages.toml + flatpak + flatpak-builder + ]; + + cargoLock = { + inherit lockFile; + }; + + nativeBuildInputs = [ + pkg-config + wrapGAppsHook4 + rust-bin.nightly."2024-05-10".default + ]; + + copyLibs = true; + + postInstall = '' + install -D --mode=444 $src/${pname}.desktop $out/share/applications/${pname}.desktop + install -D --mode=444 $src/src/resources/icons/${pname}.svg $out/share/pixmaps/${pname}.svg + ''; + + # test is broken in nix for some reason + doInstallCheck = false; + doCheck = false; + + meta = with lib; { + description = "A wip universal Linux settings application."; + homepage = "https://github.com/Xetibo/ReSet"; + changelog = "https://github.com/Xetibo/ReSet/releases/tag/${version}"; + license = licenses.gpl3; + maintainers = with maintainers; [DashieTM]; + mainProgram = "ReSet"; + }; + } diff --git a/nix/hm.nix b/nix/hm.nix new file mode 100644 index 0000000..dbd3438 --- /dev/null +++ b/nix/hm.nix @@ -0,0 +1,80 @@ +self: { config + , pkgs + , lib + , hm + , ... + }: +let + cfg = config.programs.ReSet; + defaultPackage = self.packages.${pkgs.stdenv.hostPlatform.system}.default; +in +{ + meta.maintainers = with lib.maintainers; [ DashieTM ]; + options.programs.ReSet = with lib; { + enable = mkEnableOption "ReSet"; + + package = mkOption { + type = with types; nullOr package; + default = defaultPackage; + defaultText = lib.literalExpression '' + ReSet.packages.''${pkgs.stdenv.hostPlatform.system}.default + ''; + description = mdDoc '' + Package to run + ''; + }; + + config = { + plugins = mkOption { + type = with types; listOf package; + default = null; + description = mdDoc '' + List of plugins to use, represented as a list of packages. + ''; + }; + + plugin_config = mkOption { + type = with types; attrs; + default = { }; + description = mdDoc '' + Toml values passed to the configuration for plugins to use. + ''; + }; + }; + + }; + config = + let + fetchedPlugins = + if cfg.config.plugins == [ ] + then [ ] + else + builtins.map + (entry: + if lib.types.package.check entry + then "lib${lib.replaceStrings ["-"] ["_"] entry.pname}.so" + else "") + cfg.config.plugins; + in + lib.mkIf + cfg.enable + { + home.packages = lib.optional (cfg.package != null) cfg.package ++ cfg.config.plugins; + home.file = builtins.listToAttrs (builtins.map + (pkg: { + name = ".config/reset/plugins/lib${lib.replaceStrings ["-"] ["_"] pkg.pname}.so"; + value = { + source = "${pkg}/lib/lib${lib.replaceStrings ["-"] ["_"] pkg.pname}.so"; + }; + }) + cfg.config.plugins); + + xdg.configFile."reset/ReSet.toml".source = (pkgs.formats.toml { }).generate "reset" + (lib.recursiveUpdate + { + plugins = fetchedPlugins; + + } + cfg.config.plugin_config); + }; +} diff --git a/src/components/audio/audio_box_handlers.rs b/src/components/audio/audio_box_handlers.rs new file mode 100644 index 0000000..182b0b0 --- /dev/null +++ b/src/components/audio/audio_box_handlers.rs @@ -0,0 +1,589 @@ +use std::{ + sync::Arc, + time::{Duration, SystemTime}, +}; + +use adw::prelude::{ComboRowExt, PreferencesRowExt}; +use dbus::arg::{Arg, Get}; +use glib::{ + object::{Cast, IsA}, + ControlFlow, Propagation, +}; +use gtk::{ + gio, + prelude::{BoxExt, ButtonExt, CheckButtonExt, ListBoxRowExt, RangeExt}, + StringObject, +}; +use re_set_lib::{ + audio::audio_structures::{TAudioObject, TAudioStreamObject}, + signals::{TAudioEventRemoved, TAudioObjectEvent, TAudioStreamEvent}, +}; + +use crate::components::base::{error_impl::ReSetErrorImpl, list_entry::ListEntry}; + +use super::{ + audio_box_utils::{ + populate_audio_object_information, populate_cards, populate_streams, + refresh_default_audio_object, + }, + audio_entry::{ + new_entry, DBusFunction, TAudioBox, TAudioBoxImpl, TAudioEntry, TAudioEntryImpl, + TAudioStream, TAudioStreamImpl, + }, + audio_functions::new_stream_entry, + audio_utils::audio_dbus_call, +}; + +pub fn mute_clicked_handler< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, +>( + audio_box: Arc, + function: &'static DBusFunction, +) { + let imp = audio_box.box_imp(); + let source = imp.default_audio_object(); + let mut source = source.borrow_mut(); + source.toggle_muted(); + let icons = imp.icons(); + let mute_button = imp.audio_object_mute(); + if source.muted() { + mute_button.set_icon_name(icons.muted); + } else { + mute_button.set_icon_name(icons.active); + } + audio_dbus_call::( + audio_box.clone(), + (source.index(), source.muted()), + function, + ); +} + +pub fn volume_slider_handler< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, +>( + audio_box: Arc, + value: f64, + function: &'static DBusFunction, +) -> Propagation { + let imp = audio_box.box_imp(); + let fraction = (value / 655.36).round(); + let percentage = (fraction).to_string() + "%"; + imp.volume_percentage().set_text(&percentage); + let source = imp.default_audio_object(); + let source = source.borrow(); + let index = source.index(); + let channels = source.channels(); + { + let mut time = imp.volume_time_stamp().borrow_mut(); + if time.is_some() && time.unwrap().elapsed().unwrap() < Duration::from_millis(50) { + return Propagation::Proceed; + } + *time = Some(SystemTime::now()); + } + audio_dbus_call::( + audio_box.clone(), + (index, channels, value as u32), + function, + ); + Propagation::Proceed +} + +pub fn dropdown_handler< + AudioObject: TAudioObject + Send + Sync, + StreamObject: TAudioStreamObject + Send + Sync, + AudioEntry: TAudioEntry, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, +>( + audio_box: Arc, + dropdown: &adw::ComboRow, + function: &'static DBusFunction, +) -> ControlFlow { + let source_box_imp = audio_box.box_imp(); + let source_box_ref = audio_box.clone(); + let selected = dropdown.selected_item(); + if selected.is_none() { + return ControlFlow::Break; + } + let selected = selected.unwrap(); + let selected = selected.downcast_ref::().unwrap(); + let selected = selected.string().to_string(); + let source_map = source_box_imp.source_map(); + let source_map = source_map.read().unwrap(); + let source = source_map.get(&selected); + if source.is_none() { + return ControlFlow::Break; + } + let source = Arc::new(source.unwrap().1.clone()); + gio::spawn_blocking(move || { + let result = audio_dbus_call::( + source_box_ref.clone(), + (&source,), + function, + ); + if result.is_none() { + return ControlFlow::Break; + } + refresh_default_audio_object::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + >(result.unwrap().0, source_box_ref.clone(), false); + ControlFlow::Continue + }); + ControlFlow::Continue +} + +pub fn populate_audio_objects< + AudioObject: TAudioObject + Arg + for<'z> Get<'z> + Send + Sync + 'static, + StreamObject: TAudioStreamObject + Send + Sync + for<'z> Get<'z> + Arg + 'static, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, +>( + audio_box: Arc, + audio_objects_function: &'static DBusFunction, + default_audio_object_function: &'static DBusFunction, + set_default_audio_object_function: &'static DBusFunction, + get_audio_streams_function: &'static DBusFunction, + set_audio_object_volume_function: &'static DBusFunction, + set_audio_object_mute_function: &'static DBusFunction, +) { + gio::spawn_blocking(move || { + let sources = audio_dbus_call::,), ()>( + audio_box.clone(), + (), + audio_objects_function, + ); + if sources.is_none() { + return; + } + let audio_objects = sources.unwrap().0; + { + let imp = audio_box.box_imp(); + let list = imp.model_list(); + let list = list.write().unwrap(); + let map = imp.source_map(); + let mut map = map.write().unwrap(); + let model_index = imp.model_index(); + let mut model_index = model_index.write().unwrap(); + + let audio_object = audio_dbus_call::( + audio_box.clone(), + (), + default_audio_object_function, + ); + if let Some(audio_object) = audio_object { + imp.default_audio_object().replace(audio_object.0); + } + + for audio_object in audio_objects.iter() { + let alias = audio_object.alias(); + list.append(&alias); + map.insert( + alias.clone(), + (audio_object.index(), audio_object.name().clone()), + ); + *model_index += 1; + } + } + populate_streams::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + >(audio_box.clone(), get_audio_streams_function); + populate_cards::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + >(audio_box.clone()); + populate_audio_object_information::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + >( + audio_box, + audio_objects, + set_default_audio_object_function, + set_audio_object_volume_function, + set_audio_object_mute_function, + ); + }); +} + +pub fn object_added_handler< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, + Event: TAudioObjectEvent, +>( + audio_box: Arc, + ir: Event, + dummy_name: &'static str, +) -> bool { + glib::spawn_future(async move { + glib::idle_add_once(move || { + let audio_box = audio_box.clone(); + let source_box_imp = audio_box.box_imp(); + let object = ir.object_ref(); + let object_index = object.index(); + let alias = object.alias().clone(); + let name = object.name().clone(); + let mut is_default = false; + if source_box_imp.default_audio_object().borrow().name() == object.name() { + is_default = true; + } + let source_entry = new_entry::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + >( + is_default, + source_box_imp.default_check_button().clone(), + ir.object(), + audio_box.clone(), + ); + let source_clone = source_entry.clone(); + let entry = Arc::new(ListEntry::new(&*source_entry)); + entry.set_activatable(false); + let list = source_box_imp.audio_object_list(); + let mut list = list.write().unwrap(); + list.insert(object_index, (entry.clone(), source_clone, alias.clone())); + source_box_imp.audio_objects().append(&*entry); + let map = source_box_imp.source_map(); + let mut map = map.write().unwrap(); + let index = source_box_imp.model_index(); + let mut index = index.write().unwrap(); + let model_list = source_box_imp.model_list(); + let model_list = model_list.write().unwrap(); + if model_list.string(*index - 1) == Some(dummy_name.into()) { + model_list.append(&alias); + model_list.remove(*index - 1); + map.insert(alias, (object_index, name)); + source_box_imp.audio_object_dropdown().set_selected(0); + } else { + model_list.append(&alias); + map.insert(alias.clone(), (object_index, name)); + if alias == dummy_name { + source_box_imp.audio_object_dropdown().set_selected(0); + } + *index += 1; + } + }); + }); + true +} + +pub fn object_changed_handler< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, + Event: TAudioObjectEvent, +>( + audio_box: Arc, + ir: Event, + function: &'static DBusFunction, +) -> bool { + let source = audio_dbus_call::(audio_box.clone(), (), function); + if source.is_none() { + return false; + } + let default_source = source.unwrap().0; + glib::spawn_future(async move { + glib::idle_add_once(move || { + let audio_box = audio_box.clone(); + let box_imp = audio_box.box_imp(); + let object = ir.object_ref(); + let is_default = object.name() == default_source; + let volume = object.volume(); + let volume = volume.first().unwrap_or(&0_u32); + let fraction = (*volume as f64 / 655.36).round(); + let percentage = (fraction).to_string() + "%"; + + let list = box_imp.audio_object_list(); + let list = list.read().unwrap(); + let entry = list.get(&object.index()); + if entry.is_none() { + return; + } + let imp = entry.unwrap().1.entry_imp(); + if is_default { + box_imp.volume_percentage().set_text(&percentage); + box_imp.volume_slider().set_value(*volume as f64); + box_imp.default_audio_object().replace(ir.object()); + let icons = imp.icons(); + let mute_button = imp.mute(); + if object.muted() { + mute_button.set_icon_name(icons.muted); + } else { + mute_button.set_icon_name(icons.active); + } + imp.selected_audio_object().set_active(true); + } else { + imp.selected_audio_object().set_active(false); + } + imp.name().set_title(object.alias().as_str()); + imp.volume_percentage().set_text(&percentage); + imp.volume_slider().set_value(*volume as f64); + let mute_button = imp.mute(); + let icons = imp.icons(); + if object.muted() { + mute_button.set_icon_name(icons.muted); + } else { + mute_button.set_icon_name(icons.active); + } + }); + }); + true +} + +pub fn object_removed_handler< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, + Event: TAudioEventRemoved, +>( + audio_box: Arc, + ir: Event, + dummy_name: &'static str, +) -> bool { + glib::spawn_future(async move { + glib::idle_add_once(move || { + let audio_box = audio_box.clone(); + let box_imp = audio_box.box_imp(); + let entry: Option<(Arc, Arc, String)>; + { + let list = box_imp.audio_object_list(); + let mut list = list.write().unwrap(); + entry = list.remove(&ir.index()); + if entry.is_none() { + return; + } + } + box_imp.audio_objects().remove(&*entry.clone().unwrap().0); + let map = box_imp.source_map(); + let mut map = map.write().unwrap(); + let alias = entry.unwrap().2; + map.remove(&alias); + let index = box_imp.model_index(); + let mut index = index.write().unwrap(); + let model_list = box_imp.model_list(); + let model_list = model_list.write().unwrap(); + + if *index == 1 { + model_list.append(dummy_name); + } + for entry in 0..*index { + if model_list.string(entry) == Some(alias.clone().into()) { + model_list.splice(entry, 1, &[]); + break; + } + } + if *index > 1 { + *index -= 1; + } + }); + }); + true +} + +pub fn audio_stream_added_handler< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, + Event: TAudioStreamEvent, +>( + audio_box: Arc, + ir: Event, +) -> bool { + glib::spawn_future(async move { + glib::idle_add_once(move || { + let audio_box = audio_box.clone(); + let imp = audio_box.box_imp(); + let list = imp.audio_object_stream_list(); + let mut list = list.write().unwrap(); + let index = ir.stream_ref().index(); + let stream = new_stream_entry::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + >(audio_box.clone(), ir.stream()); + let entry = Arc::new(ListEntry::new(&*stream)); + entry.set_activatable(false); + list.insert(index, (entry.clone(), stream.clone())); + imp.audio_object_streams().append(&*entry); + }); + }); + true +} + +pub fn audio_stream_changed_handler< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, + Event: TAudioStreamEvent, +>( + audio_box: Arc, + ir: Event, +) -> bool { + let imp = audio_box.box_imp(); + let alias: String; + { + let stream = ir.stream_ref(); + let object_list = imp.audio_object_list(); + let object_list = object_list.read().unwrap(); + if let Some(alias_opt) = object_list.get(&stream.audio_object_index()) { + alias = alias_opt.2.clone(); + } else { + alias = String::from(""); + } + } + glib::spawn_future(async move { + glib::idle_add_once(move || { + let audio_box = audio_box.clone(); + let box_imp = audio_box.box_imp(); + let entry: Arc; + let stream = ir.stream_ref(); + { + let list = box_imp.audio_object_stream_list(); + let list = list.read().unwrap(); + let entry_opt = list.get(&stream.index()); + if entry_opt.is_none() { + return; + } + entry = entry_opt.unwrap().1.clone(); + } + let imp = entry.entry_imp(); + let mute_button = imp.audio_object_mute(); + let icons = imp.icons(); + if stream.muted() { + mute_button.set_icon_name(icons.muted); + } else { + mute_button.set_icon_name(icons.active); + } + let name = stream.application_name().clone() + ": " + stream.name().as_str(); + imp.audio_object_selection().set_title(name.as_str()); + let volume = stream.volume(); + let volume = volume.first().unwrap_or(&0_u32); + let fraction = (*volume as f64 / 655.36).round(); + let percentage = (fraction).to_string() + "%"; + imp.volume_percentage().set_text(&percentage); + imp.volume_slider().set_value(*volume as f64); + let index = box_imp.model_index(); + let index = index.read().unwrap(); + let model_list = box_imp.model_list(); + let model_list = model_list.read().unwrap(); + for entry in 0..*index { + if model_list.string(entry) == Some(alias.clone().into()) { + imp.audio_object_selection().set_selected(entry); + break; + } + } + }); + }); + true +} + +pub fn audio_stream_removed_handler< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, + Event: TAudioEventRemoved, +>( + audio_box: Arc, + ir: Event, +) -> bool { + glib::spawn_future(async move { + glib::idle_add_once(move || { + let imp = audio_box.box_imp(); + let list = imp.audio_object_stream_list(); + let mut list = list.write().unwrap(); + let entry = list.remove(&ir.index()); + if entry.is_none() { + return; + } + imp.audio_object_streams().remove(&*entry.unwrap().0); + }); + }); + true +} diff --git a/src/components/audio/audio_box_utils.rs b/src/components/audio/audio_box_utils.rs new file mode 100644 index 0000000..90ae2b8 --- /dev/null +++ b/src/components/audio/audio_box_utils.rs @@ -0,0 +1,476 @@ +use std::sync::Arc; + +use adw::{prelude::ComboRowExt, prelude::PreferencesGroupExt}; +use dbus::{ + arg::{Arg, Get, ReadAll}, + blocking::Connection, + message::SignalArgs, + Path, +}; +use glib::{object::IsA, Variant}; +use gtk::{ + gio, + prelude::{ActionableExt, BoxExt, ButtonExt, CheckButtonExt, ListBoxRowExt, RangeExt}, +}; +use re_set_lib::{ + audio::audio_structures::{Card, TAudioObject, TAudioStreamObject}, + signals::{TAudioEventRemoved, TAudioObjectEvent, TAudioStreamEvent}, + ERROR, +}; + +#[cfg(debug_assertions)] +use re_set_lib::{utils::macros::ErrorLevel, write_log_to_file}; + +use crate::components::{ + base::{card_entry::CardEntry, error_impl::ReSetErrorImpl, list_entry::ListEntry}, + utils::{create_dropdown_label_factory, set_combo_row_ellipsis, BASE, DBUS_PATH}, +}; + +use super::{ + audio_box_handlers::{ + audio_stream_added_handler, audio_stream_changed_handler, audio_stream_removed_handler, + dropdown_handler, mute_clicked_handler, object_added_handler, object_changed_handler, + object_removed_handler, volume_slider_handler, + }, + audio_const::GETCARDS, + audio_entry::{ + new_entry, DBusFunction, TAudioBox, TAudioBoxImpl, TAudioEntry, TAudioEntryImpl, + TAudioStream, TAudioStreamImpl, + }, + audio_functions::new_stream_entry, + audio_utils::audio_dbus_call, +}; + +pub fn setup_audio_box_callbacks< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox, + AudioBoxImpl: TAudioBoxImpl, +>( + audio_box: &mut AudioBox, +) { + let imp = audio_box.box_imp(); + let object_row = imp.audio_object_row(); + object_row.set_activatable(true); + object_row.set_action_name(Some("navigation.push")); + object_row.set_action_target_value(Some(&Variant::from("devices"))); + + let cards_row = imp.cards_row(); + cards_row.set_activatable(true); + cards_row.set_action_name(Some("navigation.push")); + cards_row.set_action_target_value(Some(&Variant::from("profileConfiguration"))); + + let stream_button = imp.audio_object_stream_button(); + stream_button.set_activatable(true); + stream_button.set_action_name(Some("navigation.pop")); + + let cards_back_button = imp.cards_button(); + cards_back_button.set_activatable(true); + cards_back_button.set_action_name(Some("navigation.pop")); + + let audio_object_dropdown = imp.audio_object_dropdown(); + audio_object_dropdown.set_factory(Some(&create_dropdown_label_factory())); + set_combo_row_ellipsis(audio_object_dropdown.get()); +} + +pub fn populate_cards< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, +>( + source_box: Arc, +) { + gio::spawn_blocking(move || { + let source_box_ref = source_box.clone(); + let cards = + audio_dbus_call::,), ()>(source_box.clone(), (), &GETCARDS); + if cards.is_none() { + return; + } + let cards = cards.unwrap().0; + glib::spawn_future(async move { + glib::idle_add_once(move || { + let imp = source_box_ref.box_imp(); + for card in cards { + imp.cards().add(&CardEntry::new(card)); + } + }); + }); + }); +} + +pub fn populate_streams< + AudioObject: TAudioObject + Sync + Send + 'static, + StreamObject: TAudioStreamObject + Arg + for<'z> Get<'z> + Sync + Send + 'static, + AudioEntry: TAudioEntry, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, +>( + audio_box: Arc, + function: &'static DBusFunction, +) { + let audio_box_ref = audio_box.clone(); + gio::spawn_blocking(move || { + let streams = + audio_dbus_call::,), ()>(audio_box.clone(), (), function); + if streams.is_none() { + return; + } + let streams = streams.unwrap().0; + glib::spawn_future(async move { + glib::idle_add_once(move || { + let imp = audio_box_ref.box_imp(); + let mut list = imp.audio_object_stream_list().write().unwrap(); + for stream in streams { + let index = stream.index(); + let stream = new_stream_entry::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + >(audio_box.clone(), stream); + let stream_clone = stream.clone(); + let entry = Arc::new(ListEntry::new(&*stream)); + entry.set_activatable(false); + list.insert(index, (entry.clone(), stream_clone)); + imp.audio_object_streams().append(&*entry); + } + }); + }); + }); +} + +pub fn refresh_default_audio_object< + AudioObject: TAudioObject + Sync + Send + 'static, + StreamObject: TAudioStreamObject + Arg + for<'z> Get<'z> + Sync + Send + 'static, + AudioEntry: TAudioEntry, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, +>( + new_audio_object: AudioObject, + audio_box: Arc, + entry: bool, +) { + let volume = *new_audio_object.volume().first().unwrap_or(&0_u32); + let fraction = (volume as f64 / 655.36).round(); + let percentage = (fraction).to_string() + "%"; + glib::spawn_future(async move { + glib::idle_add_once(move || { + let imp = audio_box.box_imp(); + if !entry { + let list = imp.audio_object_list().read().unwrap(); + let entry = list.get(&new_audio_object.index()); + if entry.is_none() { + return; + } + let entry_imp = entry.unwrap().1.entry_imp(); + entry_imp.selected_audio_object().set_active(true); + } else { + let model_list = imp.model_list(); + let model_list = model_list.read().unwrap(); + for entry in 0..*imp.model_index().read().unwrap() { + if model_list.string(entry) == Some(new_audio_object.alias().clone().into()) { + imp.audio_object_dropdown().set_selected(entry); + break; + } + } + } + imp.volume_percentage().set_text(&percentage); + imp.volume_slider().set_value(volume as f64); + let icons = imp.icons(); + let mute_button = imp.audio_object_mute(); + if new_audio_object.muted() { + mute_button.set_icon_name(icons.muted); + } else { + mute_button.set_icon_name(icons.active); + } + imp.default_audio_object().replace(new_audio_object); + }); + }); +} + +pub fn populate_audio_object_information< + AudioObject: TAudioObject + Sync + Send + 'static + Arg + for<'z> Get<'z>, + StreamObject: TAudioStreamObject + Arg + for<'z> Get<'z> + Sync + Send + 'static, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, +>( + audio_box: Arc, + audio_objects: Vec, + dropdown_function: &'static DBusFunction, + change_volume_function: &'static DBusFunction, + mute_function: &'static DBusFunction, +) { + glib::spawn_future(async move { + glib::idle_add_once(move || { + let source_box_ref_slider = audio_box.clone(); + let source_box_ref_toggle = audio_box.clone(); + let source_box_ref_mute = audio_box.clone(); + let imp = audio_box.box_imp(); + let default_sink = imp.default_audio_object().clone(); + let source = default_sink.borrow(); + + let icons = imp.icons(); + let mute_button = imp.audio_object_mute(); + if source.muted() { + mute_button.set_icon_name(icons.muted); + } else { + mute_button.set_icon_name(icons.active); + } + + let volume = source.volume(); + let volume = volume.first().unwrap_or(&0_u32); + let fraction = (*volume as f64 / 655.36).round(); + let percentage = (fraction).to_string() + "%"; + imp.volume_percentage().set_text(&percentage); + imp.volume_slider().set_value(*volume as f64); + let list = imp.audio_object_list(); + let mut list = list.write().unwrap(); + for source in audio_objects { + let index = source.index(); + let alias = source.alias().clone(); + let mut is_default = false; + if imp.default_audio_object().borrow().name() == source.name() { + is_default = true; + } + let source_entry = new_entry::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + >( + is_default, + imp.default_check_button().clone(), + source, + audio_box.clone(), + ); + let source_clone = source_entry.clone(); + let entry = Arc::new(ListEntry::new(&*source_entry)); + entry.set_activatable(false); + list.insert(index, (entry.clone(), source_clone, alias)); + imp.audio_objects().append(&*entry); + } + let list = imp.model_list(); + let list = list.read().unwrap(); + imp.audio_object_dropdown().set_model(Some(&*list)); + let name = imp.default_audio_object(); + let name = name.borrow(); + + let index = imp.model_index(); + let index = index.read().unwrap(); + let model_list = imp.model_list(); + let model_list = model_list.read().unwrap(); + for entry in 0..*index { + if model_list.string(entry) == Some(name.alias().clone().into()) { + imp.audio_object_dropdown().set_selected(entry); + break; + } + } + imp.audio_object_dropdown() + .connect_selected_notify(move |dropdown| { + dropdown_handler(source_box_ref_toggle.clone(), dropdown, dropdown_function); + }); + imp.volume_slider() + .connect_change_value(move |_, _, value| { + volume_slider_handler( + source_box_ref_slider.clone(), + value, + change_volume_function, + ) + }); + + imp.audio_object_mute().connect_clicked(move |_| { + mute_clicked_handler(source_box_ref_mute.clone(), mute_function); + }); + }); + }); +} + +pub fn start_audio_box_listener< + AudioObject: TAudioObject, + StreamObject: TAudioStreamObject, + AudioEntry: TAudioEntry + IsA, + AudioEntryImpl: TAudioEntryImpl, + AudioStream: TAudioStream + IsA, + AudioStreamImpl: TAudioStreamImpl, + AudioBox: TAudioBox + ReSetErrorImpl + 'static, + AudioBoxImpl: TAudioBoxImpl, + ObjectAdded: TAudioObjectEvent + ReadAll + SignalArgs, + ObjectChanged: TAudioObjectEvent + ReadAll + SignalArgs, + ObjectRemoved: TAudioEventRemoved + ReadAll + SignalArgs, + StreamAdded: TAudioStreamEvent + ReadAll + SignalArgs, + StreamChanged: TAudioStreamEvent + ReadAll + SignalArgs, + StreamRemoved: TAudioEventRemoved + ReadAll + SignalArgs, +>( + conn: Connection, + source_box: Arc, + get_default_name_function: &'static DBusFunction, + dummy_name: &'static str, +) -> Connection { + // FUTURE TODO: make the failed logs generically sound -> deynamic output for both + let object_added = + ObjectAdded::match_rule(Some(&BASE.into()), Some(&Path::from(DBUS_PATH))).static_clone(); + let object_changed = + ObjectChanged::match_rule(Some(&BASE.into()), Some(&Path::from(DBUS_PATH))).static_clone(); + let object_removed = + ObjectRemoved::match_rule(Some(&BASE.into()), Some(&Path::from(DBUS_PATH))).static_clone(); + let stream_added = + StreamAdded::match_rule(Some(&BASE.into()), Some(&Path::from(DBUS_PATH))).static_clone(); + let stream_changed = + StreamChanged::match_rule(Some(&BASE.into()), Some(&Path::from(DBUS_PATH))).static_clone(); + let stream_removed = + StreamRemoved::match_rule(Some(&BASE.into()), Some(&Path::from(DBUS_PATH))).static_clone(); + + let object_added_box = source_box.clone(); + let object_removed_box = source_box.clone(); + let object_changed_box = source_box.clone(); + let stream_added_box = source_box.clone(); + let stream_removed_box = source_box.clone(); + let stream_changed_box = source_box.clone(); + + let res = conn.add_match(object_added, move |ir: ObjectAdded, _, _| { + object_added_handler::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + ObjectAdded, + >(object_added_box.clone(), ir, dummy_name) + }); + if res.is_err() { + ERROR!("fail on source add event", ErrorLevel::PartialBreakage); + return conn; + } + + let res = conn.add_match(object_changed, move |ir: ObjectChanged, _, _| { + object_changed_handler::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + ObjectChanged, + >(object_changed_box.clone(), ir, get_default_name_function) + }); + if res.is_err() { + ERROR!("fail on source change event", ErrorLevel::PartialBreakage); + return conn; + } + + let res = conn.add_match(object_removed, move |ir: ObjectRemoved, _, _| { + object_removed_handler::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + ObjectRemoved, + >(object_removed_box.clone(), ir, dummy_name) + }); + if res.is_err() { + ERROR!("fail on source remove event", ErrorLevel::PartialBreakage); + return conn; + } + + let res = conn.add_match(stream_added, move |ir: StreamAdded, _, _| { + audio_stream_added_handler::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + StreamAdded, + >(stream_added_box.clone(), ir) + }); + if res.is_err() { + ERROR!( + "fail on output stream add event", + ErrorLevel::PartialBreakage + ); + return conn; + } + + let res = conn.add_match(stream_changed, move |ir: StreamChanged, _, _| { + audio_stream_changed_handler::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + StreamChanged, + >(stream_changed_box.clone(), ir) + }); + if res.is_err() { + ERROR!( + "fail on output stream change event", + ErrorLevel::PartialBreakage + ); + return conn; + } + + let res = conn.add_match(stream_removed, move |ir: StreamRemoved, _, _| { + audio_stream_removed_handler::< + AudioObject, + StreamObject, + AudioEntry, + AudioEntryImpl, + AudioStream, + AudioStreamImpl, + AudioBox, + AudioBoxImpl, + StreamRemoved, + >(stream_removed_box.clone(), ir) + }); + if res.is_err() { + ERROR!( + "fail on output stream remove event", + ErrorLevel::PartialBreakage + ); + return conn; + } + + conn +} diff --git a/src/components/audio/audio_const.rs b/src/components/audio/audio_const.rs new file mode 100644 index 0000000..49773cb --- /dev/null +++ b/src/components/audio/audio_const.rs @@ -0,0 +1,6 @@ +use super::audio_entry::DBusFunction; + +pub const GETCARDS: DBusFunction = DBusFunction { + function: "ListCards", + error: "Failed to get list profiles", +}; diff --git a/src/components/audio/audio_entry.rs b/src/components/audio/audio_entry.rs new file mode 100644 index 0000000..dafe884 --- /dev/null +++ b/src/components/audio/audio_entry.rs @@ -0,0 +1,217 @@ +use std::collections::HashMap; +use std::sync::RwLock; +use std::time::Duration; +use std::{cell::RefCell, sync::Arc, time::SystemTime}; + +use adw::prelude::{ButtonExt, CheckButtonExt, PreferencesRowExt, RangeExt}; +use adw::{ActionRow, ComboRow, PreferencesGroup}; +use dbus::arg::{Arg, Get}; +use glib::Propagation; +use glib::{ + object::{IsA, IsClass}, + Object, +}; +use gtk::{gio, Button, CheckButton, Label, Scale, StringList, TemplateChild}; +use re_set_lib::audio::audio_structures::{TAudioObject, TAudioStreamObject}; + +use crate::components::base::error::ReSetError; +use crate::components::base::error_impl::ReSetErrorImpl; +use crate::components::base::list_entry::ListEntry; +use crate::components::utils::set_action_row_ellipsis; + +use super::audio_functions::refresh_default_audio_object; +use super::audio_utils::audio_dbus_call; + +pub type AudioEntryMap = Arc, Arc, String)>>>; +pub type AudioStreamEntryMap = Arc, Arc)>>>; +pub type AudioMap = Arc>>; + +pub trait TAudioBox { + fn box_imp(&self) -> &AudioBoxImpl; +} + +#[allow(dead_code)] +pub trait TAudioBoxImpl { + fn audio_object_row(&self) -> &TemplateChild; + fn cards_row(&self) -> &TemplateChild; + fn audio_object_dropdown(&self) -> &TemplateChild; + fn audio_object_mute(&self) -> &TemplateChild