[librsvg/bilelmoussaoui/bump-gtk-rs] initial port to gtk-rs 0.9



commit 9e938a7eec8e37974ce2578c12e9076cfc6228c6
Author: Bilal Elmoussaoui <bil elmoussaoui gmail com>
Date:   Thu Jul 9 23:58:53 2020 +0200

    initial port to gtk-rs 0.9

 Cargo.lock                                         | 385 +++++++++++++++------
 librsvg/Cargo.toml                                 |  18 +-
 librsvg/c_api.rs                                   |   4 +-
 librsvg_crate/Cargo.toml                           |   8 +-
 rsvg_internals/Cargo.toml                          |  22 +-
 rsvg_internals/src/document.rs                     |   2 +-
 rsvg_internals/src/drawing_ctx.rs                  |   2 +-
 rsvg_internals/src/error.rs                        |  16 +-
 rsvg_internals/src/filters/context.rs              |   4 +-
 rsvg_internals/src/filters/error.rs                |  10 +-
 rsvg_internals/src/handle.rs                       |   7 +-
 rsvg_internals/src/io.rs                           |   2 +-
 rsvg_internals/src/path_builder.rs                 |  10 +-
 rsvg_internals/src/surface_utils/shared_surface.rs |  55 ++-
 rsvg_internals/src/surface_utils/srgb.rs           |   6 +-
 15 files changed, 360 insertions(+), 191 deletions(-)
---
diff --git a/Cargo.lock b/Cargo.lock
index 51c70fb7..afb2eacf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -18,6 +18,11 @@ dependencies = [
  "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "anyhow"
+version = "1.0.31"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+
 [[package]]
 name = "approx"
 version = "0.3.2"
@@ -86,25 +91,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "cairo-rs"
-version = "0.8.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.9.2"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "system-deps 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -411,12 +417,27 @@ dependencies = [
  "new_debug_unreachable 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "futures"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-io 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "futures-channel"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -450,6 +471,11 @@ dependencies = [
  "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "futures-sink"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+
 [[package]]
 name = "futures-task"
 version = "0.3.5"
@@ -463,9 +489,13 @@ name = "futures-util"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
+ "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-io 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)",
  "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -483,28 +513,28 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "system-deps 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -527,36 +557,38 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.8.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-io 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gio-sys"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "system-deps 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "glib"
-version = "0.9.3"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -565,29 +597,45 @@ dependencies = [
  "futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-macros 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "anyhow 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)",
+ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro-crate 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro-error 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "glib-sys"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "system-deps 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gobject-sys"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "system-deps 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -595,6 +643,14 @@ name = "half"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
+[[package]]
+name = "heck"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "hermit-abi"
 version = "0.1.14"
@@ -671,9 +727,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index";
 name = "librsvg"
 version = "2.49.3"
 dependencies = [
- "cairo-rs 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-rs 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "rsvg_internals 0.0.1",
  "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -696,17 +752,17 @@ name = "librsvg_c_api"
 version = "0.0.1"
 dependencies = [
  "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-rs 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "criterion 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "rgb 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
  "rsvg_internals 0.0.1",
@@ -953,56 +1009,56 @@ source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "pango"
-version = "0.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "pango-sys"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "system-deps 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "pangocairo"
-version = "0.9.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-rs 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "pangocairo-sys 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pangocairo-sys 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "pangocairo-sys"
-version = "0.10.1"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "system-deps 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1167,6 +1223,38 @@ dependencies = [
  "treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "proc-macro-crate"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "proc-macro-error-attr 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
+ "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn-mid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "proc-macro-hack"
 version = "0.5.16"
@@ -1326,20 +1414,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index";
 name = "rsvg_internals"
 version = "0.0.1"
 dependencies = [
- "cairo-rs 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-rs 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "criterion 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "cssparser 0.27.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "data-url 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
  "float-cmp 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1349,9 +1437,9 @@ dependencies = [
  "nalgebra 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
  "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "pangocairo 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pangocairo 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
  "rayon 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "rctree 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1518,6 +1606,22 @@ dependencies = [
  "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "strum"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+
+[[package]]
+name = "strum_macros"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "syn"
 version = "1.0.33"
@@ -1528,6 +1632,30 @@ dependencies = [
  "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "syn-mid"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "system-deps"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "strum 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "strum_macros 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "version-compare 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "tempfile"
 version = "3.1.0"
@@ -1564,6 +1692,24 @@ name = "thin-slice"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
+[[package]]
+name = "thiserror"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "thiserror-impl 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "thread_local"
 version = "1.0.1"
@@ -1595,6 +1741,14 @@ name = "tinyvec"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
+[[package]]
+name = "toml"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "treeline"
 version = "0.1.0"
@@ -1621,6 +1775,11 @@ dependencies = [
  "tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "unicode-segmentation"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+
 [[package]]
 name = "unicode-width"
 version = "0.1.8"
@@ -1646,6 +1805,16 @@ name = "utf-8"
 version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
+[[package]]
+name = "version-compare"
+version = "0.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+
+[[package]]
+name = "version_check"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+
 [[package]]
 name = "wait-timeout"
 version = "0.2.0"
@@ -1769,6 +1938,7 @@ dependencies = [
 "checksum adler 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"ccc9a9dd069569f212bc4330af9f17c4afb5e8ce185e83dbb14f1349dda18b10"
 "checksum adler32 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
 "checksum aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)" = 
"043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+"checksum anyhow 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = 
"85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"
 "checksum approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
 "checksum assert_cmd 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
 "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
@@ -1778,8 +1948,8 @@ dependencies = [
 "checksum bstr 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = 
"31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931"
 "checksum bumpalo 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
 "checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = 
"08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
-"checksum cairo-rs 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"157049ba9618aa3a61c39d5d785102c04d3b1f40632a706c621a9aedc21e6084"
-"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
+"checksum cairo-rs 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"20c39055f35fb3cf8cc2683e8e85097cc1b26f76ac1438626a50c503cc141e5c"
+"checksum cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"2ed2639b9ad5f1d6efa76de95558e11339e7318426d84ac4890b86c03e828ca7"
 "checksum cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0"
 "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = 
"4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 "checksum chrono 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = 
"f0fee792e164f78f5fe0c296cc2eb3688a2ca2b70cdff33040922d298203f0c4"
@@ -1813,24 +1983,28 @@ dependencies = [
 "checksum flate2 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)" = 
"68c90b0fc46cf89d227cc78b40e494ff81287a92dd07631e5af0d06fe3cf885e"
 "checksum float-cmp 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"da62c4f1b81918835a8c6a484a397775fff5953fe83529afd51b05f5c6a6617d"
 "checksum futf 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = 
"7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b"
+"checksum futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
 "checksum futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
 "checksum futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
 "checksum futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
 "checksum futures-io 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
 "checksum futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+"checksum futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
 "checksum futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
 "checksum futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
 "checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-"checksum gdk-pixbuf 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"e248220c46b329b097d4b158d2717f8c688f16dd76d0399ace82b3e98062bdd7"
-"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
+"checksum gdk-pixbuf 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"8f6dae3cb99dd49b758b88f0132f8d401108e63ae8edd45f432d42cdff99998a"
+"checksum gdk-pixbuf-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"3bfe468a7f43e97b8d193a762b6c5cf67a7d36cacbc0b9291dbcae24bfea1e8f"
 "checksum generic-array 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd"
 "checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = 
"7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-"checksum gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"0cd10f9415cce39b53f8024bf39a21f84f8157afa52da53837b102e585a296a5"
-"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
-"checksum glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0"
-"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
-"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
+"checksum gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"3c5492e80b45e6c56214894a9a0cbe1340ab5066eb44a2dbe151393b6d7942c0"
+"checksum gio-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"35993626299fbcaa73c0a19be8fdd01c950f9f3d3ac9cb4fb5532b924ab1a5d7"
+"checksum glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"a5e0533f48640d86e8e2f3cee778a9f97588d4a0bec8be065ee51ea52346d6c1"
+"checksum glib-macros 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"4585654c573f43122004f1ceab20c1bcfa31353431c54062ababf61efe7b5755"
+"checksum glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"b6cda4af5c2f4507b7a3535b798dca2135293f4bc3a17f399ce244ef15841c4c"
+"checksum gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c"
 "checksum half 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177"
+"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
 "checksum hermit-abi 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = 
"b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909"
 "checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
 "checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
@@ -1871,10 +2045,10 @@ dependencies = [
 "checksum objc_id 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
 "checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
 "checksum oorandom 11.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"a170cebd8021a008ea92e4db85a72f80b35df514ec664b296fdcbb654eac0b2c"
-"checksum pango 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"1e9c6b728f1be8edb5f9f981420b651d5ea30bdb9de89f1f1262d0084a020577"
-"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
-"checksum pangocairo 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"bdd1077c0db2e5eb9225cc040514aa856cb6a4c4890c542cf50d37880e1c572d"
-"checksum pangocairo-sys 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"a3921b31ab776b23e28c8f6e474dda52fdc28bc2689101caeb362ba976719efe"
+"checksum pango 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"460dbe5ad850c46780ba61f142e966beacf5eebb09822830f796c91d7d4fec31"
+"checksum pango-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"24d2650c8b62d116c020abd0cea26a4ed96526afda89b1c4ea567131fdefc890"
+"checksum pangocairo 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"00f5ae67a05a5e023f09f64e9a71c845274d4b82dedee237b70425811885e883"
+"checksum pangocairo-sys 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"94ccc97f698c2f0233b84e5ca676893a1e676785b60eec700b9c0e6dcd0feb98"
 "checksum paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = 
"45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
 "checksum paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
 "checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
@@ -1895,6 +2069,9 @@ dependencies = [
 "checksum predicates 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = 
"347a1b6f0b21e636bc9872fb60b83b8e185f6f5516298b8238699f7f9a531030"
 "checksum predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
 "checksum predicates-tree 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
+"checksum proc-macro-crate 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = 
"e10d4b51f154c8a7fb96fd6dad097cb74b863943ec010ac94b9fd1be8861fe1e"
+"checksum proc-macro-error 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
+"checksum proc-macro-error-attr 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
 "checksum proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)" = 
"7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
 "checksum proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = 
"eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
 "checksum proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = 
"beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
@@ -1934,23 +2111,33 @@ dependencies = [
 "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
 "checksum string_cache 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"2940c75beb4e3bf3a494cef919a747a2cb81e52571e212bfbd185074add7208a"
 "checksum string_cache_codegen 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97"
+"checksum strum 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
+"checksum strum_macros 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
 "checksum syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = 
"e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
+"checksum syn-mid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
+"checksum system-deps 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"80e452a47a990cc127ae1cbb7b687774b1bf5a497351a9f8ff488209e76295ed"
 "checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
 "checksum tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b"
 "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
 "checksum thin-slice 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
+"checksum thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = 
"7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
+"checksum thiserror-impl 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = 
"bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
 "checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
 "checksum time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = 
"ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
 "checksum tinytemplate 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"6d3dc76004a03cec1c5932bca4cdc2e39aaa798e3f82363dd94f9adf6098c12f"
 "checksum tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = 
"ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
 "checksum treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
 "checksum typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
 "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = 
"49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
 "checksum unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = 
"6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
 "checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = 
"9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
 "checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
 "checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
 "checksum utf-8 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7"
+"checksum version-compare 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
+"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
 "checksum wait-timeout 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
 "checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
 "checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
diff --git a/librsvg/Cargo.toml b/librsvg/Cargo.toml
index edb17da9..c93e3bcc 100644
--- a/librsvg/Cargo.toml
+++ b/librsvg/Cargo.toml
@@ -12,16 +12,16 @@ crate-type = [ "staticlib", "rlib" ]
 
 [dependencies]
 bitflags = "1.0"
-cairo-rs = { version="0.8.0", features=["v1_16"] }
-cairo-sys-rs = "0.9.0"
+cairo-rs = { version="0.9.0", features=["v1_16"] }
+cairo-sys-rs = "0.10.0"
 cast = "0.2.3"
-gdk-pixbuf = "0.8.0"
-gdk-pixbuf-sys = "0.9.0"
-glib = "0.9.0"
-glib-sys = { version="0.9.0", features=["v2_50"] }
-gio = { version="0.8.0", features=["v2_50"] } # per configure.ac
-gio-sys = "0.9.0"
-gobject-sys = "0.9.0"
+gdk-pixbuf = "0.9.0"
+gdk-pixbuf-sys = "0.10.0"
+glib = "0.10.1"
+glib-sys = { version="0.10.0", features=["v2_50"] }
+gio = { version="0.9.0", features=["v2_50"] } # per configure.ac
+gio-sys = "0.10.0"
+gobject-sys = "0.10.0"
 libc = "0.2"
 rgb = { version="0.8.17", features=["argb"] }
 rsvg_internals = { path = "../rsvg_internals" }
diff --git a/librsvg/c_api.rs b/librsvg/c_api.rs
index a2bb809d..0d777039 100644
--- a/librsvg/c_api.rs
+++ b/librsvg/c_api.rs
@@ -464,8 +464,8 @@ impl ObjectImpl for CHandle {
     }
 }
 
-pub fn checked_i32(x: f64) -> Result<i32, cairo::Status> {
-    cast::i32(x).map_err(|_| cairo::Status::InvalidSize)
+pub fn checked_i32(x: f64) -> Result<i32, cairo::Error> {
+    cast::i32(x).map_err(|_| cairo::Error::InvalidSize)
 }
 
 // Keep in sync with rsvg.h:RsvgPositionData
diff --git a/librsvg_crate/Cargo.toml b/librsvg_crate/Cargo.toml
index a1a235a6..e6eca8e9 100644
--- a/librsvg_crate/Cargo.toml
+++ b/librsvg_crate/Cargo.toml
@@ -9,12 +9,12 @@ edition = "2018"
 name = "librsvg"
 
 [dependencies]
-cairo-rs = "0.8.0"
-glib = "0.9.0"
-gio = { version="0.8.0", features=["v2_50"] } # per configure.ac
+cairo-rs = "0.9.0"
+glib = "0.10.1"
+gio = { version="0.9.0", features=["v2_50"] } # per configure.ac
 rsvg_internals = { path = "../rsvg_internals" }
 url = "2"
 
 [dev-dependencies]
-cairo-rs = { version = "0.8.0", features = ["png", "pdf", "svg"] }
+cairo-rs = { version = "0.9.0", features = ["png", "pdf", "svg"] }
 rsvg_internals = { path = "../rsvg_internals" }
diff --git a/rsvg_internals/Cargo.toml b/rsvg_internals/Cargo.toml
index d95ef8b2..5f8d4178 100644
--- a/rsvg_internals/Cargo.toml
+++ b/rsvg_internals/Cargo.toml
@@ -10,19 +10,19 @@ edition = "2018"
 # Keep these in sync with respect to the cairo-rs version:
 #   librsvg_crate/Cargo.toml
 #   librsvg_crate/src/lib.rs - toplevel example in the docs
-cairo-rs = { version="0.8.0", features=["v1_16"] }
-cairo-sys-rs = "0.9.0"
+cairo-rs = { version="0.9.0", features=["v1_16"] }
+cairo-sys-rs = "0.10.0"
 cast = "0.2.3"
 cssparser = "0.27.1"
 data-url = "0.1"
 encoding = "0.2.33"
 float-cmp = "0.6.0"
-gdk-pixbuf = "0.8.0"
-gdk-pixbuf-sys = "0.9.0"
-gio = { version="0.8.0", features=["v2_50"] } # per configure.ac
-gio-sys = "0.9.0"
-glib = "0.9.0"
-glib-sys = "0.9.0"
+gdk-pixbuf = "0.9.0"
+gdk-pixbuf-sys = "0.10.0"
+gio = { version="0.9.0", features=["v2_50"] } # per configure.ac
+gio-sys = "0.10.0"
+glib = "0.10.1"
+glib-sys = "0.10.0"
 itertools = "0.8"
 language-tags = "0.2.2"
 libc = "0.2"
@@ -32,9 +32,9 @@ matches = "0.1"
 nalgebra = "0.21.0"
 num-traits = "0.2"
 once_cell = "1.2.0"
-pango = "0.8.0"
-pango-sys = "0.9.0"
-pangocairo = "0.9.0"
+pango = "0.9.0"
+pango-sys = "0.10.0"
+pangocairo = "0.10.0"
 rayon = "1"
 rctree = "0.3.3"
 rgb = { version="0.8.17", features=["argb"] }
diff --git a/rsvg_internals/src/document.rs b/rsvg_internals/src/document.rs
index dac32ac7..a9b86323 100644
--- a/rsvg_internals/src/document.rs
+++ b/rsvg_internals/src/document.rs
@@ -211,7 +211,7 @@ fn load_image(
     }
 
     let loader = if let Some(ref content_type) = content_type {
-        PixbufLoader::new_with_mime_type(content_type)?
+        PixbufLoader::with_mime_type(content_type)?
     } else {
         PixbufLoader::new()
     };
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index 2ea77595..4f07b923 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -1027,7 +1027,7 @@ impl DrawingCtx {
         &self,
         width: i32,
         height: i32,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         // TODO: as far as I can tell this should not render elements past the last (topmost) one
         // with enable-background: new (because technically we shouldn't have been caching them).
         // Right now there are no enable-background checks whatsoever.
diff --git a/rsvg_internals/src/error.rs b/rsvg_internals/src/error.rs
index cf05f35d..74446037 100644
--- a/rsvg_internals/src/error.rs
+++ b/rsvg_internals/src/error.rs
@@ -120,7 +120,7 @@ pub enum DefsLookupErrorKind {
 #[derive(Debug, Clone, PartialEq)]
 pub enum RenderingError {
     /// A Cairo error happened during rendering.
-    Cairo(cairo::Status),
+    Cairo(cairo::Error),
 
     /// There is a circular reference between elements.
     // FIXME: should be internal only.
@@ -162,10 +162,8 @@ impl fmt::Display for RenderingError {
     }
 }
 
-impl From<cairo::Status> for RenderingError {
-    fn from(e: cairo::Status) -> RenderingError {
-        assert!(e != cairo::Status::Success);
-
+impl From<cairo::Error> for RenderingError {
+    fn from(e: cairo::Error) -> RenderingError {
         RenderingError::Cairo(e)
     }
 }
@@ -333,7 +331,7 @@ pub enum LoadingError {
     BadCss,
 
     /// A Cairo error happened during loading.
-    Cairo(cairo::Status),
+    Cairo(cairo::Error),
 
     // FIXME: only used in load_image()
     EmptyData,
@@ -373,10 +371,8 @@ impl fmt::Display for LoadingError {
     }
 }
 
-impl From<cairo::Status> for LoadingError {
-    fn from(e: cairo::Status) -> LoadingError {
-        assert!(e != cairo::Status::Success);
-
+impl From<cairo::Error> for LoadingError {
+    fn from(e: cairo::Error) -> LoadingError {
         LoadingError::Cairo(e)
     }
 }
diff --git a/rsvg_internals/src/filters/context.rs b/rsvg_internals/src/filters/context.rs
index a7b63250..0af6c008 100644
--- a/rsvg_internals/src/filters/context.rs
+++ b/rsvg_internals/src/filters/context.rs
@@ -215,7 +215,7 @@ impl FilterContext {
     /// The returned surface is in the sRGB color space.
     // TODO: sRGB conversion should probably be done by the caller.
     #[inline]
-    pub fn into_output(self) -> Result<SharedImageSurface, cairo::Status> {
+    pub fn into_output(self) -> Result<SharedImageSurface, cairo::Error> {
         match self.last_result {
             Some(FilterOutput { surface, bounds }) => surface.to_srgb(bounds),
             None => SharedImageSurface::empty(
@@ -271,7 +271,7 @@ impl FilterContext {
         acquired_nodes: &mut AcquiredNodes,
         paint_server: &PaintServer,
         opacity: UnitInterval,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let mut surface = ExclusiveImageSurface::new(
             self.source_surface.width(),
             self.source_surface.height(),
diff --git a/rsvg_internals/src/filters/error.rs b/rsvg_internals/src/filters/error.rs
index bce600df..71dd8957 100644
--- a/rsvg_internals/src/filters/error.rs
+++ b/rsvg_internals/src/filters/error.rs
@@ -11,12 +11,12 @@ pub enum FilterError {
     /// The filter was passed invalid input (the `in` attribute).
     InvalidInput,
     /// The filter input surface has an unsuccessful status.
-    BadInputSurfaceStatus(cairo::Status),
+    BadInputSurfaceStatus(cairo::Error),
     /// A Cairo error.
     ///
     /// This means that either a failed intermediate surface creation or bad intermediate surface
     /// status.
-    CairoError(cairo::Status),
+    CairoError(cairo::Error),
     /// A lighting filter has none or multiple light sources.
     InvalidLightSourceCount,
     /// A lighting filter input surface is too small.
@@ -49,9 +49,9 @@ impl fmt::Display for FilterError {
     }
 }
 
-impl From<cairo::Status> for FilterError {
+impl From<cairo::Error> for FilterError {
     #[inline]
-    fn from(x: cairo::Status) -> Self {
+    fn from(x: cairo::Error) -> Self {
         FilterError::CairoError(x)
     }
 }
@@ -64,7 +64,7 @@ impl From<RenderingError> for FilterError {
         } else {
             // FIXME: this is just a dummy value; we should probably have a way to indicate
             // an error in the underlying drawing process.
-            FilterError::CairoError(cairo::Status::InvalidStatus)
+            FilterError::CairoError(cairo::Error::InvalidStatus)
         }
     }
 }
diff --git a/rsvg_internals/src/handle.rs b/rsvg_internals/src/handle.rs
index 42b24de1..3f077c2c 100644
--- a/rsvg_internals/src/handle.rs
+++ b/rsvg_internals/src/handle.rs
@@ -380,12 +380,7 @@ impl Handle {
 }
 
 fn check_cairo_context(cr: &cairo::Context) -> Result<(), RenderingError> {
-    let status = cr.status();
-    if status == cairo::Status::Success {
-        Ok(())
-    } else {
-        Err(RenderingError::Cairo(status))
-    }
+    cr.status()
 }
 
 fn unit_rectangle() -> Rect {
diff --git a/rsvg_internals/src/io.rs b/rsvg_internals/src/io.rs
index 70ab0853..563b7004 100644
--- a/rsvg_internals/src/io.rs
+++ b/rsvg_internals/src/io.rs
@@ -88,7 +88,7 @@ pub fn acquire_stream(
         //            file.write_all(&data).unwrap();
         //        }
 
-        let stream = MemoryInputStream::new_from_bytes(&GBytes::from_owned(data));
+        let stream = MemoryInputStream::from_bytes(&GBytes::from_owned(data));
         Ok(stream.upcast::<InputStream>())
     } else {
         let file = GFile::new_for_uri(uri);
diff --git a/rsvg_internals/src/path_builder.rs b/rsvg_internals/src/path_builder.rs
index 75492a33..5e31a81c 100644
--- a/rsvg_internals/src/path_builder.rs
+++ b/rsvg_internals/src/path_builder.rs
@@ -556,7 +556,7 @@ impl Path {
         self.commands.is_empty()
     }
 
-    pub fn to_cairo(&self, cr: &cairo::Context) -> Result<(), cairo::Status> {
+    pub fn to_cairo(&self, cr: &cairo::Context) -> Result<(), cairo::Error> {
         assert!(!self.is_empty());
 
         for s in self.iter() {
@@ -571,13 +571,7 @@ impl Path {
         // * The *next* call to the cr will probably be something that actually checks the status
         //   (i.e. in cairo-rs), and we don't want to panic there.
 
-        let status = cr.status();
-
-        if status == cairo::Status::Success {
-            Ok(())
-        } else {
-            Err(status)
-        }
+        cr.status()
     }
 }
 
diff --git a/rsvg_internals/src/surface_utils/shared_surface.rs 
b/rsvg_internals/src/surface_utils/shared_surface.rs
index 427fb795..a06fe946 100644
--- a/rsvg_internals/src/surface_utils/shared_surface.rs
+++ b/rsvg_internals/src/surface_utils/shared_surface.rs
@@ -176,7 +176,7 @@ impl ImageSurface<Shared> {
     pub fn wrap(
         surface: cairo::ImageSurface,
         surface_type: SurfaceType,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         // get_pixel() assumes ARgb32.
         assert_eq!(surface.get_format(), cairo::Format::ARgb32);
 
@@ -192,9 +192,6 @@ impl ImageSurface<Shared> {
         assert!(width > 0 && height > 0);
 
         surface.flush();
-        if surface.status() != cairo::Status::Success {
-            return Err(surface.status());
-        }
 
         let data_ptr =
             NonNull::new(unsafe { cairo_sys::cairo_image_surface_get_data(surface.to_raw_none()) })
@@ -216,7 +213,7 @@ impl ImageSurface<Shared> {
     /// Creates a `SharedImageSurface` copying from a `cairo::ImageSurface`, even if it
     /// does not have a reference count of 1.
     #[inline]
-    pub fn copy_from_surface(surface: &cairo::ImageSurface) -> Result<Self, cairo::Status> {
+    pub fn copy_from_surface(surface: &cairo::ImageSurface) -> Result<Self, cairo::Error> {
         let copy = cairo::ImageSurface::create(
             cairo::Format::ARgb32,
             surface.get_width(),
@@ -238,7 +235,7 @@ impl ImageSurface<Shared> {
         width: i32,
         height: i32,
         surface_type: SurfaceType,
-    ) -> Result<Self, cairo::Status> {
+    ) -> Result<Self, cairo::Error> {
         let s = cairo::ImageSurface::create(cairo::Format::ARgb32, width, height)?;
 
         SharedImageSurface::wrap(s, surface_type)
@@ -246,7 +243,7 @@ impl ImageSurface<Shared> {
 
     /// Converts this `SharedImageSurface` back into a Cairo image surface.
     #[inline]
-    pub fn into_image_surface(self) -> Result<cairo::ImageSurface, cairo::Status> {
+    pub fn into_image_surface(self) -> Result<cairo::ImageSurface, cairo::Error> {
         let reference_count =
             unsafe { cairo_sys::cairo_surface_get_reference_count(self.surface.to_raw_none()) };
 
@@ -262,7 +259,7 @@ impl ImageSurface<Shared> {
         pixbuf: &Pixbuf,
         data: Option<Vec<u8>>,
         content_type: Option<&str>,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         assert!(pixbuf.get_colorspace() == Colorspace::Rgb);
         assert!(pixbuf.get_bits_per_sample() == 8);
 
@@ -390,7 +387,7 @@ impl ImageSurface<Shared> {
 
     /// Returns a new `cairo::ImageSurface` with the same contents as the one stored in this
     /// `SharedImageSurface` within the given bounds.
-    fn copy_surface(&self, bounds: IRect) -> Result<cairo::ImageSurface, cairo::Status> {
+    fn copy_surface(&self, bounds: IRect) -> Result<cairo::ImageSurface, cairo::Error> {
         let output_surface =
             cairo::ImageSurface::create(cairo::Format::ARgb32, self.width, self.height)?;
 
@@ -414,7 +411,7 @@ impl ImageSurface<Shared> {
         bounds: IRect,
         x: f64,
         y: f64,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let output_surface = cairo::ImageSurface::create(cairo::Format::ARgb32, width, height)?;
 
         {
@@ -438,7 +435,7 @@ impl ImageSurface<Shared> {
         bounds: IRect,
         x: f64,
         y: f64,
-    ) -> Result<(SharedImageSurface, IRect), cairo::Status> {
+    ) -> Result<(SharedImageSurface, IRect), cairo::Error> {
         let new_width = (f64::from(self.width) * x).ceil() as i32;
         let new_height = (f64::from(self.height) * y).ceil() as i32;
         let new_bounds = bounds.scale(x, y);
@@ -450,7 +447,7 @@ impl ImageSurface<Shared> {
     }
 
     /// Returns a surface with black background and alpha channel matching this surface.
-    pub fn extract_alpha(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Status> {
+    pub fn extract_alpha(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Error> {
         let mut output_surface =
             cairo::ImageSurface::create(cairo::Format::ARgb32, self.width, self.height)?;
 
@@ -478,7 +475,7 @@ impl ImageSurface<Shared> {
     /// useful luminance data.
     ///
     /// This is to get a mask suitable for use with cairo_mask_surface().
-    pub fn to_mask(&self, opacity: UnitInterval) -> Result<SharedImageSurface, cairo::Status> {
+    pub fn to_mask(&self, opacity: UnitInterval) -> Result<SharedImageSurface, cairo::Error> {
         let bounds = IRect::from_size(self.width, self.height);
 
         let mut output_surface =
@@ -501,7 +498,7 @@ impl ImageSurface<Shared> {
     ///
     /// HACK: this is storing unpremultiplied pixels in an ARGB32 image surface (which is supposed
     /// to be premultiplied pixels).
-    pub fn unpremultiply(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Status> {
+    pub fn unpremultiply(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Error> {
         // Unpremultiplication doesn't affect the alpha channel.
         if self.is_alpha_only() {
             return Ok(self.clone());
@@ -524,7 +521,7 @@ impl ImageSurface<Shared> {
 
     /// Converts the surface to the linear sRGB color space.
     #[inline]
-    pub fn to_linear_rgb(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Status> {
+    pub fn to_linear_rgb(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Error> {
         if self.surface_type == SurfaceType::LinearRgb {
             Ok(self.clone())
         } else {
@@ -534,7 +531,7 @@ impl ImageSurface<Shared> {
 
     /// Converts the surface to the sRGB color space.
     #[inline]
-    pub fn to_srgb(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Status> {
+    pub fn to_srgb(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Error> {
         if self.surface_type == SurfaceType::SRgb {
             Ok(self.clone())
         } else {
@@ -560,7 +557,7 @@ impl ImageSurface<Shared> {
         target: (i32, i32),
         kernel: &Matrix<f64, R, C, S>,
         edge_mode: EdgeMode,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         assert!(kernel.nrows() >= 1);
         assert!(kernel.ncols() >= 1);
 
@@ -956,7 +953,7 @@ impl ImageSurface<Shared> {
         bounds: IRect,
         kernel_size: usize,
         target: usize,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let mut output_surface =
             cairo::ImageSurface::create(cairo::Format::ARgb32, self.width, self.height)?;
 
@@ -976,7 +973,7 @@ impl ImageSurface<Shared> {
         bounds: IRect,
         color: cssparser::RGBA,
         opacity: UnitInterval,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let output_surface =
             cairo::ImageSurface::create(cairo::Format::ARgb32, self.width, self.height)?;
 
@@ -1005,7 +1002,7 @@ impl ImageSurface<Shared> {
         bounds: IRect,
         dx: f64,
         dy: f64,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let output_surface =
             cairo::ImageSurface::create(cairo::Format::ARgb32, self.width, self.height)?;
 
@@ -1035,7 +1032,7 @@ impl ImageSurface<Shared> {
         bounds: Rect,
         image: &SharedImageSurface,
         rect: Option<Rect>,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let output_surface =
             cairo::ImageSurface::create(cairo::Format::ARgb32, self.width, self.height)?;
 
@@ -1069,7 +1066,7 @@ impl ImageSurface<Shared> {
 
     /// Creates a new surface with the size and content specified in `bounds`
     #[inline]
-    pub fn tile(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Status> {
+    pub fn tile(&self, bounds: IRect) -> Result<SharedImageSurface, cairo::Error> {
         let output_surface =
             cairo::ImageSurface::create(cairo::Format::ARgb32, bounds.width(), bounds.height())?;
 
@@ -1091,7 +1088,7 @@ impl ImageSurface<Shared> {
         image: &SharedImageSurface,
         x: i32,
         y: i32,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let output_surface =
             cairo::ImageSurface::create(cairo::Format::ARgb32, self.width, self.height)?;
 
@@ -1126,7 +1123,7 @@ impl ImageSurface<Shared> {
         other: &SharedImageSurface,
         bounds: IRect,
         operator: cairo::Operator,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let output_surface = other.copy_surface(bounds)?;
 
         {
@@ -1162,7 +1159,7 @@ impl ImageSurface<Shared> {
         k2: f64,
         k3: f64,
         k4: f64,
-    ) -> Result<SharedImageSurface, cairo::Status> {
+    ) -> Result<SharedImageSurface, cairo::Error> {
         let mut output_surface = ExclusiveImageSurface::new(
             self.width,
             self.height,
@@ -1288,7 +1285,7 @@ impl ImageSurface<Exclusive> {
         width: i32,
         height: i32,
         surface_type: SurfaceType,
-    ) -> Result<ExclusiveImageSurface, cairo::Status> {
+    ) -> Result<ExclusiveImageSurface, cairo::Error> {
         let surface = cairo::ImageSurface::create(cairo::Format::ARgb32, width, height)?;
 
         let (width, height) = (surface.get_width(), surface.get_height());
@@ -1316,7 +1313,7 @@ impl ImageSurface<Exclusive> {
     }
 
     #[inline]
-    pub fn share(self) -> Result<SharedImageSurface, cairo::Status> {
+    pub fn share(self) -> Result<SharedImageSurface, cairo::Error> {
         SharedImageSurface::wrap(self.surface, self.surface_type)
     }
 
@@ -1339,8 +1336,8 @@ impl ImageSurface<Exclusive> {
     #[inline]
     pub fn draw(
         &mut self,
-        draw_fn: &mut dyn FnMut(&cairo::Context) -> Result<(), cairo::Status>,
-    ) -> Result<(), cairo::Status> {
+        draw_fn: &mut dyn FnMut(&cairo::Context) -> Result<(), cairo::Error>,
+    ) -> Result<(), cairo::Error> {
         let cr = cairo::Context::new(&self.surface);
         draw_fn(&cr)
     }
diff --git a/rsvg_internals/src/surface_utils/srgb.rs b/rsvg_internals/src/surface_utils/srgb.rs
index b88f486e..92cad916 100644
--- a/rsvg_internals/src/surface_utils/srgb.rs
+++ b/rsvg_internals/src/surface_utils/srgb.rs
@@ -64,7 +64,7 @@ fn map_unpremultiplied_components<F: Fn(u8) -> u8>(
     bounds: IRect,
     f: F,
     new_type: SurfaceType,
-) -> Result<SharedImageSurface, cairo::Status> {
+) -> Result<SharedImageSurface, cairo::Error> {
     // This function doesn't affect the alpha channel.
     if surface.is_alpha_only() {
         return Ok(surface.clone());
@@ -82,7 +82,7 @@ fn map_unpremultiplied_components<F: Fn(u8) -> u8>(
 pub fn linearize_surface(
     surface: &SharedImageSurface,
     bounds: IRect,
-) -> Result<SharedImageSurface, cairo::Status> {
+) -> Result<SharedImageSurface, cairo::Error> {
     assert_ne!(surface.surface_type(), SurfaceType::LinearRgb);
 
     map_unpremultiplied_components(surface, bounds, linearize, SurfaceType::LinearRgb)
@@ -93,7 +93,7 @@ pub fn linearize_surface(
 pub fn unlinearize_surface(
     surface: &SharedImageSurface,
     bounds: IRect,
-) -> Result<SharedImageSurface, cairo::Status> {
+) -> Result<SharedImageSurface, cairo::Error> {
     assert_ne!(surface.surface_type(), SurfaceType::SRgb);
 
     map_unpremultiplied_components(surface, bounds, unlinearize, SurfaceType::SRgb)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]