From 54fb3f8c2f954d555fd993dd261fb45164afe479 Mon Sep 17 00:00:00 2001 From: Qiu Wenbo Date: Mon, 6 Jan 2025 14:40:25 +0800 Subject: [PATCH 1/3] shell: Make Window.open accept gio::File And don't use plain &str as URI. gio::File is already an abstraction of plain URI. Signed-off-by: Qiu Wenbo --- shell/src/application.rs | 26 +++++++++++++------------- shell/src/document_view/io.rs | 6 +++++- shell/src/document_view/signals.rs | 7 ++++--- shell/src/window.rs | 18 ++++++++---------- 4 files changed, 30 insertions(+), 27 deletions(-) diff --git a/shell/src/application.rs b/shell/src/application.rs index 4c543580a..3fb041970 100644 --- a/shell/src/application.rs +++ b/shell/src/application.rs @@ -110,7 +110,7 @@ mod imp { } let f = gio::File::for_commandline_arg(arg); - self.open_uri_at_dest(&f.uri(), dest.as_ref(), mode); + self.open_file_at_dest(&f, dest.as_ref(), mode); } } } @@ -120,9 +120,7 @@ mod imp { fn open(&self, files: &[gio::File], _hint: &str) { for f in files { - let uri = f.uri(); - - self.open_uri_at_dest(uri.as_str(), None, None); + self.open_file_at_dest(f, None, None); } } } @@ -157,15 +155,16 @@ mod imp { PpsWindow::default().present(); } - fn open_uri_at_dest( + fn open_file_at_dest( &self, - uri: &str, + file: &gio::File, dest: Option<&papers_document::LinkDest>, mode: Option, ) { let obj = self.obj(); let mut n_window = 0; let mut window = None; + let uri = file.uri(); for w in obj .windows() @@ -184,7 +183,7 @@ mod imp { // Since we don't have security between documents, then // spawn a new process! See: // https://gitlab.gnome.org/GNOME/Incubator/papers/-/issues/104 - spawn(Some(uri), dest, mode); + spawn(Some(file), dest, mode); return; } @@ -192,7 +191,7 @@ mod imp { // We need to load uri before showing the window, so // we can restore window size without flickering - window.open_uri(uri, dest, mode); + window.open(file, dest, mode); window.present(); } @@ -392,8 +391,9 @@ impl PpsApplication { } } -pub fn spawn(uri: Option<&str>, dest: Option<&LinkDest>, mode: Option) { +pub fn spawn(file: Option<&gio::File>, dest: Option<&LinkDest>, mode: Option) { let mut cmd = String::new(); + let uri = file.map(|f| f.uri().to_string()); match env::current_exe() { Ok(path) => { @@ -444,8 +444,8 @@ pub fn spawn(uri: Option<&str>, dest: Option<&LinkDest>, mode: Option, dest: Option<&LinkDest>, mode: Option, dest: Option<&papers_document::LinkDest>, @@ -1055,9 +1055,9 @@ mod imp { let uri = f.uri(); if obj.obj().uri().is_some_and(|u| u != uri) { - spawn(Some(&uri), None, None); + spawn(Some(&f), None, None); } else { - obj.open_file(&f, None, None); + obj.open(&f, None, None); } } @@ -1171,10 +1171,10 @@ mod imp { // document! if let Some(current_uri) = current_uri { if current_uri != uri { - crate::application::spawn(Some(&uri), None, None); + crate::application::spawn(Some(&file), None, None); } } else { - self.open_file(&file, None, None); + self.open(&file, None, None); } } @@ -1201,15 +1201,13 @@ impl PpsWindow { self.imp().file.borrow().as_ref().map(|f| f.uri().into()) } - pub fn open_uri( + pub fn open( &self, - uri: &str, + file: &gio::File, dest: Option<&papers_document::LinkDest>, mode: Option, ) { - let file = gio::File::for_uri(uri); - - self.imp().open_file(&file, dest, mode) + self.imp().open(file, dest, mode) } pub fn is_empty(&self) -> bool { -- GitLab From ce8b6b664ba3b0aacea6297589586a20ab22f832 Mon Sep 17 00:00:00 2001 From: Qiu Wenbo Date: Thu, 9 Jan 2025 11:24:32 +0800 Subject: [PATCH 2/3] rust: Split the rust binding into rust/ directory So we can start the rust port of other components. Signed-off-by: Qiu Wenbo --- .editorconfig | 2 +- .gitignore | 1 + .gitlab-ci.yml | 2 +- .gitmodules | 8 +- Cargo.lock | 2137 +++++++++++++++++ Cargo.toml | 17 + meson.build | 2 + {shell => rust}/README.md | 5 +- {shell => rust}/gir | 0 {shell => rust}/gir-files | 0 rust/meson.build | 15 + {shell => rust}/papers-document/Cargo.toml | 0 {shell => rust}/papers-document/Gir.toml | 0 .../papers-document/src/auto/annotation.rs | 0 .../src/auto/annotation_attachment.rs | 0 .../src/auto/annotation_free_text.rs | 0 .../src/auto/annotation_markup.rs | 0 .../src/auto/annotation_text.rs | 0 .../src/auto/annotation_text_markup.rs | 0 .../papers-document/src/auto/attachment.rs | 0 .../src/auto/certificate_info.rs | 0 .../papers-document/src/auto/document.rs | 0 .../src/auto/document_annotations.rs | 0 .../src/auto/document_attachments.rs | 0 .../papers-document/src/auto/document_find.rs | 0 .../src/auto/document_fonts.rs | 0 .../src/auto/document_forms.rs | 0 .../src/auto/document_images.rs | 0 .../papers-document/src/auto/document_info.rs | 0 .../src/auto/document_layers.rs | 0 .../src/auto/document_license.rs | 0 .../src/auto/document_links.rs | 0 .../src/auto/document_security.rs | 0 .../src/auto/document_signatures.rs | 0 .../papers-document/src/auto/document_text.rs | 0 .../papers-document/src/auto/enums.rs | 0 .../src/auto/find_rectangle.rs | 0 .../papers-document/src/auto/flags.rs | 0 .../src/auto/font_description.rs | 0 .../papers-document/src/auto/functions.rs | 0 .../papers-document/src/auto/image.rs | 0 .../papers-document/src/auto/layer.rs | 0 .../papers-document/src/auto/link.rs | 0 .../papers-document/src/auto/link_action.rs | 0 .../papers-document/src/auto/link_dest.rs | 0 .../papers-document/src/auto/mapping.rs | 0 .../papers-document/src/auto/mapping_list.rs | 0 .../papers-document/src/auto/mod.rs | 0 .../papers-document/src/auto/outlines.rs | 0 .../papers-document/src/auto/page.rs | 0 .../papers-document/src/auto/rectangle.rs | 0 .../papers-document/src/auto/selection.rs | 0 .../papers-document/src/auto/signature.rs | 0 .../src/auto/transition_effect.rs | 0 .../papers-document/src/auto/versions.txt | 0 {shell => rust}/papers-document/src/lib.rs | 0 .../papers-document/src/prelude.rs | 0 .../papers-document/src/rectangle.rs | 0 .../papers-document/sys/Cargo.toml | 0 {shell => rust}/papers-document/sys/Gir.toml | 0 {shell => rust}/papers-document/sys/build.rs | 0 .../papers-document/sys/src/auto/versions.txt | 0 .../papers-document/sys/src/lib.rs | 0 .../papers-document/sys/tests/abi.rs | 0 .../papers-document/sys/tests/constant.c | 0 .../papers-document/sys/tests/layout.c | 0 .../papers-document/sys/tests/manual.h | 0 {shell => rust}/papers-view/Cargo.toml | 0 {shell => rust}/papers-view/Gir.toml | 0 .../papers-view/src/attachment_context.rs | 0 .../src/auto/attachment_context.rs | 0 .../papers-view/src/auto/document_model.rs | 0 {shell => rust}/papers-view/src/auto/enums.rs | 0 .../papers-view/src/auto/history.rs | 0 {shell => rust}/papers-view/src/auto/job.rs | 0 .../papers-view/src/auto/job_annots.rs | 0 .../papers-view/src/auto/job_attachments.rs | 0 .../papers-view/src/auto/job_find.rs | 0 .../papers-view/src/auto/job_fonts.rs | 0 .../papers-view/src/auto/job_layers.rs | 0 .../papers-view/src/auto/job_links.rs | 0 .../papers-view/src/auto/job_load.rs | 0 .../papers-view/src/auto/job_save.rs | 0 .../papers-view/src/auto/job_signatures.rs | 0 .../src/auto/job_thumbnail_texture.rs | 0 .../papers-view/src/auto/metadata.rs | 0 {shell => rust}/papers-view/src/auto/mod.rs | 0 .../papers-view/src/auto/print_operation.rs | 0 .../papers-view/src/auto/search_context.rs | 0 .../papers-view/src/auto/search_result.rs | 0 .../papers-view/src/auto/versions.txt | 0 {shell => rust}/papers-view/src/auto/view.rs | 0 .../papers-view/src/auto/view_presentation.rs | 0 {shell => rust}/papers-view/src/lib.rs | 0 {shell => rust}/papers-view/src/prelude.rs | 0 {shell => rust}/papers-view/sys/Cargo.toml | 0 {shell => rust}/papers-view/sys/Gir.toml | 0 {shell => rust}/papers-view/sys/build.rs | 0 .../papers-view/sys/src/auto/versions.txt | 0 {shell => rust}/papers-view/sys/src/lib.rs | 0 {shell => rust}/papers-view/sys/tests/abi.rs | 0 .../papers-view/sys/tests/constant.c | 0 .../papers-view/sys/tests/layout.c | 0 .../papers-view/sys/tests/manual.h | 0 {shell => rust}/pps-girs/Adw-1.gir | 0 .../pps-girs/PapersDocument-4.0.gir | 0 {shell => rust}/pps-girs/PapersView-4.0.gir | 0 {shell => rust}/update-bindings.sh | 2 +- shell/Cargo.toml | 18 +- shell/meson.build | 16 +- 110 files changed, 2184 insertions(+), 41 deletions(-) create mode 100644 Cargo.lock create mode 100644 Cargo.toml rename {shell => rust}/README.md (82%) rename {shell => rust}/gir (100%) rename {shell => rust}/gir-files (100%) create mode 100644 rust/meson.build rename {shell => rust}/papers-document/Cargo.toml (100%) rename {shell => rust}/papers-document/Gir.toml (100%) rename {shell => rust}/papers-document/src/auto/annotation.rs (100%) rename {shell => rust}/papers-document/src/auto/annotation_attachment.rs (100%) rename {shell => rust}/papers-document/src/auto/annotation_free_text.rs (100%) rename {shell => rust}/papers-document/src/auto/annotation_markup.rs (100%) rename {shell => rust}/papers-document/src/auto/annotation_text.rs (100%) rename {shell => rust}/papers-document/src/auto/annotation_text_markup.rs (100%) rename {shell => rust}/papers-document/src/auto/attachment.rs (100%) rename {shell => rust}/papers-document/src/auto/certificate_info.rs (100%) rename {shell => rust}/papers-document/src/auto/document.rs (100%) rename {shell => rust}/papers-document/src/auto/document_annotations.rs (100%) rename {shell => rust}/papers-document/src/auto/document_attachments.rs (100%) rename {shell => rust}/papers-document/src/auto/document_find.rs (100%) rename {shell => rust}/papers-document/src/auto/document_fonts.rs (100%) rename {shell => rust}/papers-document/src/auto/document_forms.rs (100%) rename {shell => rust}/papers-document/src/auto/document_images.rs (100%) rename {shell => rust}/papers-document/src/auto/document_info.rs (100%) rename {shell => rust}/papers-document/src/auto/document_layers.rs (100%) rename {shell => rust}/papers-document/src/auto/document_license.rs (100%) rename {shell => rust}/papers-document/src/auto/document_links.rs (100%) rename {shell => rust}/papers-document/src/auto/document_security.rs (100%) rename {shell => rust}/papers-document/src/auto/document_signatures.rs (100%) rename {shell => rust}/papers-document/src/auto/document_text.rs (100%) rename {shell => rust}/papers-document/src/auto/enums.rs (100%) rename {shell => rust}/papers-document/src/auto/find_rectangle.rs (100%) rename {shell => rust}/papers-document/src/auto/flags.rs (100%) rename {shell => rust}/papers-document/src/auto/font_description.rs (100%) rename {shell => rust}/papers-document/src/auto/functions.rs (100%) rename {shell => rust}/papers-document/src/auto/image.rs (100%) rename {shell => rust}/papers-document/src/auto/layer.rs (100%) rename {shell => rust}/papers-document/src/auto/link.rs (100%) rename {shell => rust}/papers-document/src/auto/link_action.rs (100%) rename {shell => rust}/papers-document/src/auto/link_dest.rs (100%) rename {shell => rust}/papers-document/src/auto/mapping.rs (100%) rename {shell => rust}/papers-document/src/auto/mapping_list.rs (100%) rename {shell => rust}/papers-document/src/auto/mod.rs (100%) rename {shell => rust}/papers-document/src/auto/outlines.rs (100%) rename {shell => rust}/papers-document/src/auto/page.rs (100%) rename {shell => rust}/papers-document/src/auto/rectangle.rs (100%) rename {shell => rust}/papers-document/src/auto/selection.rs (100%) rename {shell => rust}/papers-document/src/auto/signature.rs (100%) rename {shell => rust}/papers-document/src/auto/transition_effect.rs (100%) rename {shell => rust}/papers-document/src/auto/versions.txt (100%) rename {shell => rust}/papers-document/src/lib.rs (100%) rename {shell => rust}/papers-document/src/prelude.rs (100%) rename {shell => rust}/papers-document/src/rectangle.rs (100%) rename {shell => rust}/papers-document/sys/Cargo.toml (100%) rename {shell => rust}/papers-document/sys/Gir.toml (100%) rename {shell => rust}/papers-document/sys/build.rs (100%) rename {shell => rust}/papers-document/sys/src/auto/versions.txt (100%) rename {shell => rust}/papers-document/sys/src/lib.rs (100%) rename {shell => rust}/papers-document/sys/tests/abi.rs (100%) rename {shell => rust}/papers-document/sys/tests/constant.c (100%) rename {shell => rust}/papers-document/sys/tests/layout.c (100%) rename {shell => rust}/papers-document/sys/tests/manual.h (100%) rename {shell => rust}/papers-view/Cargo.toml (100%) rename {shell => rust}/papers-view/Gir.toml (100%) rename {shell => rust}/papers-view/src/attachment_context.rs (100%) rename {shell => rust}/papers-view/src/auto/attachment_context.rs (100%) rename {shell => rust}/papers-view/src/auto/document_model.rs (100%) rename {shell => rust}/papers-view/src/auto/enums.rs (100%) rename {shell => rust}/papers-view/src/auto/history.rs (100%) rename {shell => rust}/papers-view/src/auto/job.rs (100%) rename {shell => rust}/papers-view/src/auto/job_annots.rs (100%) rename {shell => rust}/papers-view/src/auto/job_attachments.rs (100%) rename {shell => rust}/papers-view/src/auto/job_find.rs (100%) rename {shell => rust}/papers-view/src/auto/job_fonts.rs (100%) rename {shell => rust}/papers-view/src/auto/job_layers.rs (100%) rename {shell => rust}/papers-view/src/auto/job_links.rs (100%) rename {shell => rust}/papers-view/src/auto/job_load.rs (100%) rename {shell => rust}/papers-view/src/auto/job_save.rs (100%) rename {shell => rust}/papers-view/src/auto/job_signatures.rs (100%) rename {shell => rust}/papers-view/src/auto/job_thumbnail_texture.rs (100%) rename {shell => rust}/papers-view/src/auto/metadata.rs (100%) rename {shell => rust}/papers-view/src/auto/mod.rs (100%) rename {shell => rust}/papers-view/src/auto/print_operation.rs (100%) rename {shell => rust}/papers-view/src/auto/search_context.rs (100%) rename {shell => rust}/papers-view/src/auto/search_result.rs (100%) rename {shell => rust}/papers-view/src/auto/versions.txt (100%) rename {shell => rust}/papers-view/src/auto/view.rs (100%) rename {shell => rust}/papers-view/src/auto/view_presentation.rs (100%) rename {shell => rust}/papers-view/src/lib.rs (100%) rename {shell => rust}/papers-view/src/prelude.rs (100%) rename {shell => rust}/papers-view/sys/Cargo.toml (100%) rename {shell => rust}/papers-view/sys/Gir.toml (100%) rename {shell => rust}/papers-view/sys/build.rs (100%) rename {shell => rust}/papers-view/sys/src/auto/versions.txt (100%) rename {shell => rust}/papers-view/sys/src/lib.rs (100%) rename {shell => rust}/papers-view/sys/tests/abi.rs (100%) rename {shell => rust}/papers-view/sys/tests/constant.c (100%) rename {shell => rust}/papers-view/sys/tests/layout.c (100%) rename {shell => rust}/papers-view/sys/tests/manual.h (100%) rename {shell => rust}/pps-girs/Adw-1.gir (100%) rename {shell => rust}/pps-girs/PapersDocument-4.0.gir (100%) rename {shell => rust}/pps-girs/PapersView-4.0.gir (100%) rename {shell => rust}/update-bindings.sh (91%) diff --git a/.editorconfig b/.editorconfig index 5ce2832b4..ee9f6f20c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -48,5 +48,5 @@ trim_trailing_whitespace=false [*.po] trim_trailing_whitespace=false -[/shell/**] +[/rust/**] trim_trailing_whitespace = unset diff --git a/.gitignore b/.gitignore index 3813b035a..f8baf02d6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ _build/ .flatpak-builder po/papers.pot *.clang-format +target/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ba2a35fa9..a154c68eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -94,7 +94,7 @@ cargo-format: before_script: - git submodule init - git submodule update --checkout - - cargo install --path shell/gir + - cargo install --path rust/gir - export PATH=$PATH:$HOME/.cargo/bin - meson setup $MESON_SETUP_OPTIONS --werror --fatal-meson-warnings _build - meson compile -C _build update-rust-bindings diff --git a/.gitmodules b/.gitmodules index db8bb2aca..caca1bf2b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,10 +1,10 @@ -[submodule "shell/gir-files"] - path = shell/gir-files +[submodule "rust/gir-files"] + path = rust/gir-files url = https://github.com/gtk-rs/gir-files branch = master update = none -[submodule "shell/gir"] - path = shell/gir +[submodule "rust/gir"] + path = rust/gir url = https://github.com/gtk-rs/gir branch = master update = none diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 000000000..b27c94604 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2137 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", + "zeroize", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anstream" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + +[[package]] +name = "anstyle-parse" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +dependencies = [ + "anstyle", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +dependencies = [ + "async-lock", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-io" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-net" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" +dependencies = [ + "async-io", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-process" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", + "tracing", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-signal" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cairo-rs" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae50b5510d86cf96ac2370e66d8dc960882f3df179d6a5a1e52bd94a1416c0f7" +dependencies = [ + "bitflags", + "cairo-sys-rs", + "glib", + "libc", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f18b6bb8e43c7eb0f2aac7976afe0c61b6f5fc2ab7bc4c139537ea56c92290df" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-expr" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d4ba6e40bd1184518716a6e1a781bf9160e286d219ccdb8ab2612e74cfe4789" +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 = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "cpufeatures" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core", + "typenum", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + +[[package]] +name = "enumflags2" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[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 = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-lite" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +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.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6efc7705f7863d37b12ad6974cbb310d35d054f5108cdc1e69037742f573c4c" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67f2587c9202bf997476bbba6aaed4f78a11538a2567df002a5f57f5331d0b5c" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk4" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0196720118f880f71fe7da971eff58cc43a89c9cf73f46076b7cb1e60889b15" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk4-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk4-sys" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b0e1340bd15e7a78810cf39fed9e5d85f0a8f80b1d999d384ca17dcc452b60" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gettext-rs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44e92f7dc08430aca7ed55de161253a22276dfd69c5526e5c5e95d1f7cf338a" +dependencies = [ + "gettext-sys", + "locale_config", +] + +[[package]] +name = "gettext-sys" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb45773f5b8945f12aecd04558f545964f943dacda1b1155b3d738f5469ef661" +dependencies = [ + "cc", + "temp-dir", +] + +[[package]] +name = "gio" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a517657589a174be9f60c667f1fec8b7ac82ed5db4ebf56cf073a3b5955d8e2e" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "pin-project-lite", + "smallvec", +] + +[[package]] +name = "gio-sys" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8446d9b475730ebef81802c1738d972db42fde1c5a36a627ebc4d665fc87db04" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "windows-sys 0.59.0", +] + +[[package]] +name = "glib" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f969edf089188d821a30cde713b6f9eb08b20c63fc2e584aba2892a7984a8cc0" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "smallvec", +] + +[[package]] +name = "glib-macros" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715601f8f02e71baef9c1f94a657a9a77c192aea6097cf9ae7e5e177cd8cde68" +dependencies = [ + "heck", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b360ff0f90d71de99095f79c526a5888c9c92fc9ee1b19da06c6f5e75f0c2a53" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "gobject-sys" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a56235e971a63bfd75abb13ef70064e1346388723422a68580d8a6fbac6423" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "graphene-rs" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f39d3bcd2e24fd9c2874a56f277b72c03e728de9bdc95a8d4ef4c962f10ced98" +dependencies = [ + "glib", + "graphene-sys", + "libc", +] + +[[package]] +name = "graphene-sys" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11a68d39515bf340e879b72cecd4a25c1332557757ada6e8aba8654b4b81d23a" +dependencies = [ + "glib-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gsk4" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b9188db0a6219e708b6b6e7225718e459def664023dbddb8395ca1486d8102" +dependencies = [ + "cairo-rs", + "gdk4", + "glib", + "graphene-rs", + "gsk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gsk4-sys" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bca10fc65d68528a548efa3d8747934adcbe7058b73695c9a7f43a25352fce14" +dependencies = [ + "cairo-sys-rs", + "gdk4-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk4" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b697ff938136625f6acf75f01951220f47a45adcf0060ee55b4671cf734dac44" +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.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed1786c4703dd196baf7e103525ce0cf579b3a63a0570fe653b7ee6bac33999" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "gtk4-sys" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3af4b680cee5d2f786a2f91f1c77e95ecf2254522f0ca4edf3a2dce6cb35cecf" +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.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[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.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "indexmap" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "libadwaita" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8611ee9fb85e7606c362b513afcaf5b59853f79e4d98caaaf581d99465014247" +dependencies = [ + "gdk4", + "gio", + "glib", + "gtk4", + "libadwaita-sys", + "libc", + "pango", +] + +[[package]] +name = "libadwaita-sys" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b099a223560118d4d4fa04b6d23f3ea5b7171fe1d83dfb7e6b45b54cdfc83af9" +dependencies = [ + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "locale_config" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" +dependencies = [ + "lazy_static", + "objc", + "objc-foundation", + "regex", + "winapi", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "serde", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "oo7" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc6ce4692fbfd044ce22ca07dcab1a30fa12432ca2aa5b1294eca50d3332a24" +dependencies = [ + "aes", + "async-fs", + "async-io", + "async-lock", + "async-net", + "blocking", + "cbc", + "cipher", + "digest", + "endi", + "futures-lite", + "futures-util", + "hkdf", + "hmac", + "md-5", + "num", + "num-bigint-dig", + "pbkdf2", + "rand", + "serde", + "sha2", + "subtle", + "zbus", + "zeroize", + "zvariant", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "pango" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e89bd74250a03a05cec047b43465469102af803be2bf5e5a1088f8b8455e087" +dependencies = [ + "gio", + "glib", + "libc", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71787e0019b499a5eda889279e4adb455a4f3fdd6870cd5ab7f4a5aa25df6699" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "papers" +version = "0.1.0" +dependencies = [ + "env_logger", + "futures", + "gdk-pixbuf", + "gdk4", + "gettext-rs", + "gio", + "glib", + "gtk4", + "libadwaita", + "log", + "lru", + "oo7", + "pango", + "papers-document", + "papers-view", +] + +[[package]] +name = "papers-document" +version = "0.1.0" +dependencies = [ + "bitflags", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "gtk4", + "libc", + "pango", + "papers-document-sys", +] + +[[package]] +name = "papers-document-sys" +version = "0.0.1" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "pango-sys", + "shell-words", + "system-deps", + "tempfile", +] + +[[package]] +name = "papers-view" +version = "0.1.0" +dependencies = [ + "bitflags", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "gtk4", + "libc", + "papers-document", + "papers-view-sys", +] + +[[package]] +name = "papers-view-sys" +version = "0.0.1" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "pango-sys", + "papers-document-sys", + "shell-words", + "system-deps", + "tempfile", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest", + "hmac", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "polling" +version = "3.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "semver" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" + +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[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 = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "7.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005" +dependencies = [ + "cfg-expr", + "heck", + "pkg-config", + "toml", + "version-compare", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "temp-dir" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc1ee6eef34f12f765cb94725905c6312b6610ab2b0940889cfe58dae7bc3c72" + +[[package]] +name = "tempfile" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" +dependencies = [ + "cfg-if", + "fastrand", + "getrandom", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset", + "tempfile", + "winapi", +] + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[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.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.6.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980" +dependencies = [ + "memchr", +] + +[[package]] +name = "xdg-home" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "zbus" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "windows-sys 0.52.0", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zvariant" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" +dependencies = [ + "endi", + "enumflags2", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 000000000..57f354894 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,17 @@ +[profile.release] +lto = true + +[workspace] +resolver = "2" + +members = [ + './rust/papers-view', + './rust/papers-view/sys', + './rust/papers-document', + './rust/papers-document/sys', + './shell', +] + +exclude = [ + './rust/gir', +] diff --git a/meson.build b/meson.build index d3fe8f492..6a9541644 100644 --- a/meson.build +++ b/meson.build @@ -331,6 +331,8 @@ subdir('libdocument') subdir('libview') subdir('nautilus') +subdir('rust') + # Print Previewer enable_previewer = get_option('previewer') if enable_previewer diff --git a/shell/README.md b/rust/README.md similarity index 82% rename from shell/README.md rename to rust/README.md index bf0d3c4cf..d94676e0a 100644 --- a/shell/README.md +++ b/rust/README.md @@ -6,13 +6,12 @@ | --------------- | ------------ | | papers-document | libdocument | | papers-view | libview | -| papers-shell | libshell | -Bindings are generated by [gir](https://github.com/gtk-rs/gir) and `*.gir` inside `shell/gir-files`. Before generating the bindings, you should checkout the submodule and install `gir` command. +Bindings are generated by [gir](https://github.com/gtk-rs/gir) and `*.gir` inside `rust/gir-files`. Before generating the bindings, you should checkout the submodule and install `gir` command. ``` git submodule update --checkout -cd shell/gir +cd rust/gir cargo install --path . ``` diff --git a/shell/gir b/rust/gir similarity index 100% rename from shell/gir rename to rust/gir diff --git a/shell/gir-files b/rust/gir-files similarity index 100% rename from shell/gir-files rename to rust/gir-files diff --git a/rust/meson.build b/rust/meson.build new file mode 100644 index 000000000..db9363dd4 --- /dev/null +++ b/rust/meson.build @@ -0,0 +1,15 @@ +rust_binding_root = meson.current_source_dir() + +cargo_fmt = find_program('cargo-fmt', required: get_option('profile') == 'devel') +if gobject_introspection_dep.found() and cargo_fmt.found() + gir_dir = rust_binding_root / 'gir-files' + + run_target('update-rust-bindings', + command: [ + rust_binding_root / 'update-bindings.sh', + libppsview_gir[0].full_path(), + libppsdocument_gir[0].full_path(), + ], + depends: [libppsview_gir[0], libppsdocument_gir[0]] + ) +endif diff --git a/shell/papers-document/Cargo.toml b/rust/papers-document/Cargo.toml similarity index 100% rename from shell/papers-document/Cargo.toml rename to rust/papers-document/Cargo.toml diff --git a/shell/papers-document/Gir.toml b/rust/papers-document/Gir.toml similarity index 100% rename from shell/papers-document/Gir.toml rename to rust/papers-document/Gir.toml diff --git a/shell/papers-document/src/auto/annotation.rs b/rust/papers-document/src/auto/annotation.rs similarity index 100% rename from shell/papers-document/src/auto/annotation.rs rename to rust/papers-document/src/auto/annotation.rs diff --git a/shell/papers-document/src/auto/annotation_attachment.rs b/rust/papers-document/src/auto/annotation_attachment.rs similarity index 100% rename from shell/papers-document/src/auto/annotation_attachment.rs rename to rust/papers-document/src/auto/annotation_attachment.rs diff --git a/shell/papers-document/src/auto/annotation_free_text.rs b/rust/papers-document/src/auto/annotation_free_text.rs similarity index 100% rename from shell/papers-document/src/auto/annotation_free_text.rs rename to rust/papers-document/src/auto/annotation_free_text.rs diff --git a/shell/papers-document/src/auto/annotation_markup.rs b/rust/papers-document/src/auto/annotation_markup.rs similarity index 100% rename from shell/papers-document/src/auto/annotation_markup.rs rename to rust/papers-document/src/auto/annotation_markup.rs diff --git a/shell/papers-document/src/auto/annotation_text.rs b/rust/papers-document/src/auto/annotation_text.rs similarity index 100% rename from shell/papers-document/src/auto/annotation_text.rs rename to rust/papers-document/src/auto/annotation_text.rs diff --git a/shell/papers-document/src/auto/annotation_text_markup.rs b/rust/papers-document/src/auto/annotation_text_markup.rs similarity index 100% rename from shell/papers-document/src/auto/annotation_text_markup.rs rename to rust/papers-document/src/auto/annotation_text_markup.rs diff --git a/shell/papers-document/src/auto/attachment.rs b/rust/papers-document/src/auto/attachment.rs similarity index 100% rename from shell/papers-document/src/auto/attachment.rs rename to rust/papers-document/src/auto/attachment.rs diff --git a/shell/papers-document/src/auto/certificate_info.rs b/rust/papers-document/src/auto/certificate_info.rs similarity index 100% rename from shell/papers-document/src/auto/certificate_info.rs rename to rust/papers-document/src/auto/certificate_info.rs diff --git a/shell/papers-document/src/auto/document.rs b/rust/papers-document/src/auto/document.rs similarity index 100% rename from shell/papers-document/src/auto/document.rs rename to rust/papers-document/src/auto/document.rs diff --git a/shell/papers-document/src/auto/document_annotations.rs b/rust/papers-document/src/auto/document_annotations.rs similarity index 100% rename from shell/papers-document/src/auto/document_annotations.rs rename to rust/papers-document/src/auto/document_annotations.rs diff --git a/shell/papers-document/src/auto/document_attachments.rs b/rust/papers-document/src/auto/document_attachments.rs similarity index 100% rename from shell/papers-document/src/auto/document_attachments.rs rename to rust/papers-document/src/auto/document_attachments.rs diff --git a/shell/papers-document/src/auto/document_find.rs b/rust/papers-document/src/auto/document_find.rs similarity index 100% rename from shell/papers-document/src/auto/document_find.rs rename to rust/papers-document/src/auto/document_find.rs diff --git a/shell/papers-document/src/auto/document_fonts.rs b/rust/papers-document/src/auto/document_fonts.rs similarity index 100% rename from shell/papers-document/src/auto/document_fonts.rs rename to rust/papers-document/src/auto/document_fonts.rs diff --git a/shell/papers-document/src/auto/document_forms.rs b/rust/papers-document/src/auto/document_forms.rs similarity index 100% rename from shell/papers-document/src/auto/document_forms.rs rename to rust/papers-document/src/auto/document_forms.rs diff --git a/shell/papers-document/src/auto/document_images.rs b/rust/papers-document/src/auto/document_images.rs similarity index 100% rename from shell/papers-document/src/auto/document_images.rs rename to rust/papers-document/src/auto/document_images.rs diff --git a/shell/papers-document/src/auto/document_info.rs b/rust/papers-document/src/auto/document_info.rs similarity index 100% rename from shell/papers-document/src/auto/document_info.rs rename to rust/papers-document/src/auto/document_info.rs diff --git a/shell/papers-document/src/auto/document_layers.rs b/rust/papers-document/src/auto/document_layers.rs similarity index 100% rename from shell/papers-document/src/auto/document_layers.rs rename to rust/papers-document/src/auto/document_layers.rs diff --git a/shell/papers-document/src/auto/document_license.rs b/rust/papers-document/src/auto/document_license.rs similarity index 100% rename from shell/papers-document/src/auto/document_license.rs rename to rust/papers-document/src/auto/document_license.rs diff --git a/shell/papers-document/src/auto/document_links.rs b/rust/papers-document/src/auto/document_links.rs similarity index 100% rename from shell/papers-document/src/auto/document_links.rs rename to rust/papers-document/src/auto/document_links.rs diff --git a/shell/papers-document/src/auto/document_security.rs b/rust/papers-document/src/auto/document_security.rs similarity index 100% rename from shell/papers-document/src/auto/document_security.rs rename to rust/papers-document/src/auto/document_security.rs diff --git a/shell/papers-document/src/auto/document_signatures.rs b/rust/papers-document/src/auto/document_signatures.rs similarity index 100% rename from shell/papers-document/src/auto/document_signatures.rs rename to rust/papers-document/src/auto/document_signatures.rs diff --git a/shell/papers-document/src/auto/document_text.rs b/rust/papers-document/src/auto/document_text.rs similarity index 100% rename from shell/papers-document/src/auto/document_text.rs rename to rust/papers-document/src/auto/document_text.rs diff --git a/shell/papers-document/src/auto/enums.rs b/rust/papers-document/src/auto/enums.rs similarity index 100% rename from shell/papers-document/src/auto/enums.rs rename to rust/papers-document/src/auto/enums.rs diff --git a/shell/papers-document/src/auto/find_rectangle.rs b/rust/papers-document/src/auto/find_rectangle.rs similarity index 100% rename from shell/papers-document/src/auto/find_rectangle.rs rename to rust/papers-document/src/auto/find_rectangle.rs diff --git a/shell/papers-document/src/auto/flags.rs b/rust/papers-document/src/auto/flags.rs similarity index 100% rename from shell/papers-document/src/auto/flags.rs rename to rust/papers-document/src/auto/flags.rs diff --git a/shell/papers-document/src/auto/font_description.rs b/rust/papers-document/src/auto/font_description.rs similarity index 100% rename from shell/papers-document/src/auto/font_description.rs rename to rust/papers-document/src/auto/font_description.rs diff --git a/shell/papers-document/src/auto/functions.rs b/rust/papers-document/src/auto/functions.rs similarity index 100% rename from shell/papers-document/src/auto/functions.rs rename to rust/papers-document/src/auto/functions.rs diff --git a/shell/papers-document/src/auto/image.rs b/rust/papers-document/src/auto/image.rs similarity index 100% rename from shell/papers-document/src/auto/image.rs rename to rust/papers-document/src/auto/image.rs diff --git a/shell/papers-document/src/auto/layer.rs b/rust/papers-document/src/auto/layer.rs similarity index 100% rename from shell/papers-document/src/auto/layer.rs rename to rust/papers-document/src/auto/layer.rs diff --git a/shell/papers-document/src/auto/link.rs b/rust/papers-document/src/auto/link.rs similarity index 100% rename from shell/papers-document/src/auto/link.rs rename to rust/papers-document/src/auto/link.rs diff --git a/shell/papers-document/src/auto/link_action.rs b/rust/papers-document/src/auto/link_action.rs similarity index 100% rename from shell/papers-document/src/auto/link_action.rs rename to rust/papers-document/src/auto/link_action.rs diff --git a/shell/papers-document/src/auto/link_dest.rs b/rust/papers-document/src/auto/link_dest.rs similarity index 100% rename from shell/papers-document/src/auto/link_dest.rs rename to rust/papers-document/src/auto/link_dest.rs diff --git a/shell/papers-document/src/auto/mapping.rs b/rust/papers-document/src/auto/mapping.rs similarity index 100% rename from shell/papers-document/src/auto/mapping.rs rename to rust/papers-document/src/auto/mapping.rs diff --git a/shell/papers-document/src/auto/mapping_list.rs b/rust/papers-document/src/auto/mapping_list.rs similarity index 100% rename from shell/papers-document/src/auto/mapping_list.rs rename to rust/papers-document/src/auto/mapping_list.rs diff --git a/shell/papers-document/src/auto/mod.rs b/rust/papers-document/src/auto/mod.rs similarity index 100% rename from shell/papers-document/src/auto/mod.rs rename to rust/papers-document/src/auto/mod.rs diff --git a/shell/papers-document/src/auto/outlines.rs b/rust/papers-document/src/auto/outlines.rs similarity index 100% rename from shell/papers-document/src/auto/outlines.rs rename to rust/papers-document/src/auto/outlines.rs diff --git a/shell/papers-document/src/auto/page.rs b/rust/papers-document/src/auto/page.rs similarity index 100% rename from shell/papers-document/src/auto/page.rs rename to rust/papers-document/src/auto/page.rs diff --git a/shell/papers-document/src/auto/rectangle.rs b/rust/papers-document/src/auto/rectangle.rs similarity index 100% rename from shell/papers-document/src/auto/rectangle.rs rename to rust/papers-document/src/auto/rectangle.rs diff --git a/shell/papers-document/src/auto/selection.rs b/rust/papers-document/src/auto/selection.rs similarity index 100% rename from shell/papers-document/src/auto/selection.rs rename to rust/papers-document/src/auto/selection.rs diff --git a/shell/papers-document/src/auto/signature.rs b/rust/papers-document/src/auto/signature.rs similarity index 100% rename from shell/papers-document/src/auto/signature.rs rename to rust/papers-document/src/auto/signature.rs diff --git a/shell/papers-document/src/auto/transition_effect.rs b/rust/papers-document/src/auto/transition_effect.rs similarity index 100% rename from shell/papers-document/src/auto/transition_effect.rs rename to rust/papers-document/src/auto/transition_effect.rs diff --git a/shell/papers-document/src/auto/versions.txt b/rust/papers-document/src/auto/versions.txt similarity index 100% rename from shell/papers-document/src/auto/versions.txt rename to rust/papers-document/src/auto/versions.txt diff --git a/shell/papers-document/src/lib.rs b/rust/papers-document/src/lib.rs similarity index 100% rename from shell/papers-document/src/lib.rs rename to rust/papers-document/src/lib.rs diff --git a/shell/papers-document/src/prelude.rs b/rust/papers-document/src/prelude.rs similarity index 100% rename from shell/papers-document/src/prelude.rs rename to rust/papers-document/src/prelude.rs diff --git a/shell/papers-document/src/rectangle.rs b/rust/papers-document/src/rectangle.rs similarity index 100% rename from shell/papers-document/src/rectangle.rs rename to rust/papers-document/src/rectangle.rs diff --git a/shell/papers-document/sys/Cargo.toml b/rust/papers-document/sys/Cargo.toml similarity index 100% rename from shell/papers-document/sys/Cargo.toml rename to rust/papers-document/sys/Cargo.toml diff --git a/shell/papers-document/sys/Gir.toml b/rust/papers-document/sys/Gir.toml similarity index 100% rename from shell/papers-document/sys/Gir.toml rename to rust/papers-document/sys/Gir.toml diff --git a/shell/papers-document/sys/build.rs b/rust/papers-document/sys/build.rs similarity index 100% rename from shell/papers-document/sys/build.rs rename to rust/papers-document/sys/build.rs diff --git a/shell/papers-document/sys/src/auto/versions.txt b/rust/papers-document/sys/src/auto/versions.txt similarity index 100% rename from shell/papers-document/sys/src/auto/versions.txt rename to rust/papers-document/sys/src/auto/versions.txt diff --git a/shell/papers-document/sys/src/lib.rs b/rust/papers-document/sys/src/lib.rs similarity index 100% rename from shell/papers-document/sys/src/lib.rs rename to rust/papers-document/sys/src/lib.rs diff --git a/shell/papers-document/sys/tests/abi.rs b/rust/papers-document/sys/tests/abi.rs similarity index 100% rename from shell/papers-document/sys/tests/abi.rs rename to rust/papers-document/sys/tests/abi.rs diff --git a/shell/papers-document/sys/tests/constant.c b/rust/papers-document/sys/tests/constant.c similarity index 100% rename from shell/papers-document/sys/tests/constant.c rename to rust/papers-document/sys/tests/constant.c diff --git a/shell/papers-document/sys/tests/layout.c b/rust/papers-document/sys/tests/layout.c similarity index 100% rename from shell/papers-document/sys/tests/layout.c rename to rust/papers-document/sys/tests/layout.c diff --git a/shell/papers-document/sys/tests/manual.h b/rust/papers-document/sys/tests/manual.h similarity index 100% rename from shell/papers-document/sys/tests/manual.h rename to rust/papers-document/sys/tests/manual.h diff --git a/shell/papers-view/Cargo.toml b/rust/papers-view/Cargo.toml similarity index 100% rename from shell/papers-view/Cargo.toml rename to rust/papers-view/Cargo.toml diff --git a/shell/papers-view/Gir.toml b/rust/papers-view/Gir.toml similarity index 100% rename from shell/papers-view/Gir.toml rename to rust/papers-view/Gir.toml diff --git a/shell/papers-view/src/attachment_context.rs b/rust/papers-view/src/attachment_context.rs similarity index 100% rename from shell/papers-view/src/attachment_context.rs rename to rust/papers-view/src/attachment_context.rs diff --git a/shell/papers-view/src/auto/attachment_context.rs b/rust/papers-view/src/auto/attachment_context.rs similarity index 100% rename from shell/papers-view/src/auto/attachment_context.rs rename to rust/papers-view/src/auto/attachment_context.rs diff --git a/shell/papers-view/src/auto/document_model.rs b/rust/papers-view/src/auto/document_model.rs similarity index 100% rename from shell/papers-view/src/auto/document_model.rs rename to rust/papers-view/src/auto/document_model.rs diff --git a/shell/papers-view/src/auto/enums.rs b/rust/papers-view/src/auto/enums.rs similarity index 100% rename from shell/papers-view/src/auto/enums.rs rename to rust/papers-view/src/auto/enums.rs diff --git a/shell/papers-view/src/auto/history.rs b/rust/papers-view/src/auto/history.rs similarity index 100% rename from shell/papers-view/src/auto/history.rs rename to rust/papers-view/src/auto/history.rs diff --git a/shell/papers-view/src/auto/job.rs b/rust/papers-view/src/auto/job.rs similarity index 100% rename from shell/papers-view/src/auto/job.rs rename to rust/papers-view/src/auto/job.rs diff --git a/shell/papers-view/src/auto/job_annots.rs b/rust/papers-view/src/auto/job_annots.rs similarity index 100% rename from shell/papers-view/src/auto/job_annots.rs rename to rust/papers-view/src/auto/job_annots.rs diff --git a/shell/papers-view/src/auto/job_attachments.rs b/rust/papers-view/src/auto/job_attachments.rs similarity index 100% rename from shell/papers-view/src/auto/job_attachments.rs rename to rust/papers-view/src/auto/job_attachments.rs diff --git a/shell/papers-view/src/auto/job_find.rs b/rust/papers-view/src/auto/job_find.rs similarity index 100% rename from shell/papers-view/src/auto/job_find.rs rename to rust/papers-view/src/auto/job_find.rs diff --git a/shell/papers-view/src/auto/job_fonts.rs b/rust/papers-view/src/auto/job_fonts.rs similarity index 100% rename from shell/papers-view/src/auto/job_fonts.rs rename to rust/papers-view/src/auto/job_fonts.rs diff --git a/shell/papers-view/src/auto/job_layers.rs b/rust/papers-view/src/auto/job_layers.rs similarity index 100% rename from shell/papers-view/src/auto/job_layers.rs rename to rust/papers-view/src/auto/job_layers.rs diff --git a/shell/papers-view/src/auto/job_links.rs b/rust/papers-view/src/auto/job_links.rs similarity index 100% rename from shell/papers-view/src/auto/job_links.rs rename to rust/papers-view/src/auto/job_links.rs diff --git a/shell/papers-view/src/auto/job_load.rs b/rust/papers-view/src/auto/job_load.rs similarity index 100% rename from shell/papers-view/src/auto/job_load.rs rename to rust/papers-view/src/auto/job_load.rs diff --git a/shell/papers-view/src/auto/job_save.rs b/rust/papers-view/src/auto/job_save.rs similarity index 100% rename from shell/papers-view/src/auto/job_save.rs rename to rust/papers-view/src/auto/job_save.rs diff --git a/shell/papers-view/src/auto/job_signatures.rs b/rust/papers-view/src/auto/job_signatures.rs similarity index 100% rename from shell/papers-view/src/auto/job_signatures.rs rename to rust/papers-view/src/auto/job_signatures.rs diff --git a/shell/papers-view/src/auto/job_thumbnail_texture.rs b/rust/papers-view/src/auto/job_thumbnail_texture.rs similarity index 100% rename from shell/papers-view/src/auto/job_thumbnail_texture.rs rename to rust/papers-view/src/auto/job_thumbnail_texture.rs diff --git a/shell/papers-view/src/auto/metadata.rs b/rust/papers-view/src/auto/metadata.rs similarity index 100% rename from shell/papers-view/src/auto/metadata.rs rename to rust/papers-view/src/auto/metadata.rs diff --git a/shell/papers-view/src/auto/mod.rs b/rust/papers-view/src/auto/mod.rs similarity index 100% rename from shell/papers-view/src/auto/mod.rs rename to rust/papers-view/src/auto/mod.rs diff --git a/shell/papers-view/src/auto/print_operation.rs b/rust/papers-view/src/auto/print_operation.rs similarity index 100% rename from shell/papers-view/src/auto/print_operation.rs rename to rust/papers-view/src/auto/print_operation.rs diff --git a/shell/papers-view/src/auto/search_context.rs b/rust/papers-view/src/auto/search_context.rs similarity index 100% rename from shell/papers-view/src/auto/search_context.rs rename to rust/papers-view/src/auto/search_context.rs diff --git a/shell/papers-view/src/auto/search_result.rs b/rust/papers-view/src/auto/search_result.rs similarity index 100% rename from shell/papers-view/src/auto/search_result.rs rename to rust/papers-view/src/auto/search_result.rs diff --git a/shell/papers-view/src/auto/versions.txt b/rust/papers-view/src/auto/versions.txt similarity index 100% rename from shell/papers-view/src/auto/versions.txt rename to rust/papers-view/src/auto/versions.txt diff --git a/shell/papers-view/src/auto/view.rs b/rust/papers-view/src/auto/view.rs similarity index 100% rename from shell/papers-view/src/auto/view.rs rename to rust/papers-view/src/auto/view.rs diff --git a/shell/papers-view/src/auto/view_presentation.rs b/rust/papers-view/src/auto/view_presentation.rs similarity index 100% rename from shell/papers-view/src/auto/view_presentation.rs rename to rust/papers-view/src/auto/view_presentation.rs diff --git a/shell/papers-view/src/lib.rs b/rust/papers-view/src/lib.rs similarity index 100% rename from shell/papers-view/src/lib.rs rename to rust/papers-view/src/lib.rs diff --git a/shell/papers-view/src/prelude.rs b/rust/papers-view/src/prelude.rs similarity index 100% rename from shell/papers-view/src/prelude.rs rename to rust/papers-view/src/prelude.rs diff --git a/shell/papers-view/sys/Cargo.toml b/rust/papers-view/sys/Cargo.toml similarity index 100% rename from shell/papers-view/sys/Cargo.toml rename to rust/papers-view/sys/Cargo.toml diff --git a/shell/papers-view/sys/Gir.toml b/rust/papers-view/sys/Gir.toml similarity index 100% rename from shell/papers-view/sys/Gir.toml rename to rust/papers-view/sys/Gir.toml diff --git a/shell/papers-view/sys/build.rs b/rust/papers-view/sys/build.rs similarity index 100% rename from shell/papers-view/sys/build.rs rename to rust/papers-view/sys/build.rs diff --git a/shell/papers-view/sys/src/auto/versions.txt b/rust/papers-view/sys/src/auto/versions.txt similarity index 100% rename from shell/papers-view/sys/src/auto/versions.txt rename to rust/papers-view/sys/src/auto/versions.txt diff --git a/shell/papers-view/sys/src/lib.rs b/rust/papers-view/sys/src/lib.rs similarity index 100% rename from shell/papers-view/sys/src/lib.rs rename to rust/papers-view/sys/src/lib.rs diff --git a/shell/papers-view/sys/tests/abi.rs b/rust/papers-view/sys/tests/abi.rs similarity index 100% rename from shell/papers-view/sys/tests/abi.rs rename to rust/papers-view/sys/tests/abi.rs diff --git a/shell/papers-view/sys/tests/constant.c b/rust/papers-view/sys/tests/constant.c similarity index 100% rename from shell/papers-view/sys/tests/constant.c rename to rust/papers-view/sys/tests/constant.c diff --git a/shell/papers-view/sys/tests/layout.c b/rust/papers-view/sys/tests/layout.c similarity index 100% rename from shell/papers-view/sys/tests/layout.c rename to rust/papers-view/sys/tests/layout.c diff --git a/shell/papers-view/sys/tests/manual.h b/rust/papers-view/sys/tests/manual.h similarity index 100% rename from shell/papers-view/sys/tests/manual.h rename to rust/papers-view/sys/tests/manual.h diff --git a/shell/pps-girs/Adw-1.gir b/rust/pps-girs/Adw-1.gir similarity index 100% rename from shell/pps-girs/Adw-1.gir rename to rust/pps-girs/Adw-1.gir diff --git a/shell/pps-girs/PapersDocument-4.0.gir b/rust/pps-girs/PapersDocument-4.0.gir similarity index 100% rename from shell/pps-girs/PapersDocument-4.0.gir rename to rust/pps-girs/PapersDocument-4.0.gir diff --git a/shell/pps-girs/PapersView-4.0.gir b/rust/pps-girs/PapersView-4.0.gir similarity index 100% rename from shell/pps-girs/PapersView-4.0.gir rename to rust/pps-girs/PapersView-4.0.gir diff --git a/shell/update-bindings.sh b/rust/update-bindings.sh similarity index 91% rename from shell/update-bindings.sh rename to rust/update-bindings.sh index f049f17a7..92b89fd82 100755 --- a/shell/update-bindings.sh +++ b/rust/update-bindings.sh @@ -1,7 +1,7 @@ #!/bin/bash if [ -n "${MESON_SOURCE_ROOT}" ]; then - cd "${MESON_SOURCE_ROOT}/shell" + cd "${MESON_SOURCE_ROOT}/rust" fi if ! command -v gir &> /dev/null diff --git a/shell/Cargo.toml b/shell/Cargo.toml index ba6db6242..6a5f8c2e6 100644 --- a/shell/Cargo.toml +++ b/shell/Cargo.toml @@ -7,9 +7,6 @@ rust-version = "1.70" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[profile.release] -lto = true - [features] with-keyring = ["dep:oo7"] spell-check = [] @@ -52,19 +49,8 @@ features = ["v1_6"] [dependencies.papers_view] package = "papers-view" -path = "./papers-view" +path = "../rust/papers-view" [dependencies.papers_document] package = "papers-document" -path = "./papers-document" - -[workspace] -members = [ - './papers-view', - './papers-view/sys', - './papers-document', - './papers-document/sys', -] -exclude = [ - './gir', -] +path = "../rust/papers-document" diff --git a/shell/meson.build b/shell/meson.build index 5115f3db9..6a6d8c970 100644 --- a/shell/meson.build +++ b/shell/meson.build @@ -1,19 +1,5 @@ -subdir('resources') - shell_rs_root = meson.current_source_dir() -cargo_fmt = find_program('cargo-fmt', required: get_option('profile') == 'devel') -if gobject_introspection_dep.found() and cargo_fmt.found() - gir_dir = shell_rs_root / 'gir-files' - - run_target('update-rust-bindings', - command: [ - shell_rs_root / 'update-bindings.sh', - libppsview_gir[0].full_path(), - libppsdocument_gir[0].full_path(), - ], - depends: [libppsview_gir[0], libppsdocument_gir[0]] - ) -endif +subdir('resources') subdir('src') -- GitLab From 5cc4312d5b0ad6858d4781b62a4be70bf16ec697 Mon Sep 17 00:00:00 2001 From: Qiu Wenbo Date: Thu, 9 Jan 2025 13:45:08 +0800 Subject: [PATCH 3/3] libview: Declare PpsPageCache as final type Signed-off-by: Qiu Wenbo --- libview/pps-page-cache.c | 12 ------------ libview/pps-page-cache.h | 10 +--------- 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/libview/pps-page-cache.c b/libview/pps-page-cache.c index eaa18ed8f..cdeffc799 100644 --- a/libview/pps-page-cache.c +++ b/libview/pps-page-cache.c @@ -19,17 +19,9 @@ #include -#include "pps-document-annotations.h" -#include "pps-document-forms.h" -#include "pps-document-images.h" -#include "pps-document-links.h" -#include "pps-document-media.h" -#include "pps-document-text.h" #include "pps-job-scheduler.h" #include "pps-jobs.h" -#include "pps-mapping-list.h" #include "pps-page-cache.h" -#include "pps-selection.h" #include enum { @@ -73,10 +65,6 @@ struct _PpsPageCache { PpsJobPageDataFlags flags; }; -struct _PpsPageCacheClass { - GObjectClass parent_class; -}; - #define PPS_PAGE_DATA_FLAGS_DEFAULT ( \ PPS_PAGE_DATA_INCLUDE_LINKS | \ PPS_PAGE_DATA_INCLUDE_TEXT_MAPPING | \ diff --git a/libview/pps-page-cache.h b/libview/pps-page-cache.h index dffa59e1e..1b2843438 100644 --- a/libview/pps-page-cache.h +++ b/libview/pps-page-cache.h @@ -31,16 +31,8 @@ G_BEGIN_DECLS #define PPS_TYPE_PAGE_CACHE (pps_page_cache_get_type ()) -#define PPS_PAGE_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PPS_TYPE_PAGE_CACHE, PpsPageCache)) -#define PPS_IS_PAGE_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PPS_TYPE_PAGE_CACHE)) -#define PPS_PAGE_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PPS_TYPE_PAGE_CACHE, PpsPageCacheClass)) -#define PPS_IS_PAGE_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PPS_TYPE_PAGE_CACHE)) -#define PPS_PAGE_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PPS_TYPE_PAGE_CACHE, PpsPageCacheClass)) +G_DECLARE_FINAL_TYPE (PpsPageCache, pps_page_cache, PPS, PAGE_CACHE, GObject) -typedef struct _PpsPageCache PpsPageCache; -typedef struct _PpsPageCacheClass PpsPageCacheClass; - -GType pps_page_cache_get_type (void) G_GNUC_CONST; PpsPageCache *pps_page_cache_new (PpsDocument *document); void pps_page_cache_set_page_range (PpsPageCache *cache, -- GitLab