diff --git a/Cargo.lock b/Cargo.lock index 69ee6a86..e9d92d1c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5,10 +5,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "aho-corasick" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -16,16 +16,7 @@ name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "app_units" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -33,28 +24,16 @@ name = "area-lut" version = "0.2.0" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "arrayvec" -version = "0.4.7" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "atk-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -62,39 +41,9 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "backtrace" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "backtrace-sys" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "base64" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -102,80 +51,28 @@ name = "base64" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "bincode" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "bit-vec" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "bitflags" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "bitflags" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "byteorder" -version = "1.2.6" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "c_vec" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "cairo-rs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "c_vec 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-sys-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "cc" -version = "1.0.25" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cfg-if" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -200,84 +97,17 @@ dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "cmake" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "cocoa" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "color_quant" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "cookie" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "core-foundation" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "core-foundation-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "core-foundation-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "core-graphics" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "core-text" -version = "13.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crc32fast" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -294,12 +124,12 @@ name = "crossbeam-epoch" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -308,37 +138,16 @@ name = "crossbeam-utils" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "deflate" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "dirs" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "dwrote" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -352,48 +161,18 @@ version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "euclid" -version = "0.19.0" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "expat-sys" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cmake 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "failure" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "failure_derive" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -409,72 +188,6 @@ dependencies = [ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "float-ord" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "font-kit" -version = "0.1.0" -source = "git+https://github.com/pcwalton/font-kit#0cbcbb51a60c6d766d65418d093202a457d63c7c" -dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "cocoa 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-text 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "dirs 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "dwrote 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "float-ord 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-fontconfig 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "fontsan" -version = "0.4.0" -source = "git+https://github.com/servo/fontsan.git#29e879c870348c4b3fd51086e42dbb6365171479" -dependencies = [ - "cmake 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz-sys 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "freetype" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-freetype-sys 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "fs_extra" version = "1.1.0" @@ -494,52 +207,6 @@ name = "fuchsia-zircon-sys" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "gcc" -version = "0.3.54" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "gdk-pixbuf" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "gdk-pixbuf-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "gdk-pixbuf-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "gdk-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-sys-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-pixbuf-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pango-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "generate-gamma-lut" version = "0.1.0" @@ -551,123 +218,40 @@ dependencies = [ [[package]] name = "gif" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "gio-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "glib" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "glib-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "gobject-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "half" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "hashbrown" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "httparse" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "humantime" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "hyper" -version = "0.10.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "httparse 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "idna" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "image" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "gif 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gif 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "jpeg-decoder 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-derive 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "num-derive 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "num-iter 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -677,44 +261,20 @@ dependencies = [ [[package]] name = "inflate" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "isatty" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "itertools" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "itoa" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "jemalloc-sys" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -723,7 +283,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -731,31 +291,18 @@ name = "jpeg-decoder" version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "language-tags" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "lazy_static" -version = "0.2.11" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "lazy_static" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "libc" -version = "0.2.43" +version = "0.2.46" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -764,46 +311,33 @@ version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "linked-hash-map" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "log" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "log" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "lru-cache" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "lyon_geom" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -812,7 +346,7 @@ name = "lyon_path" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lyon_geom 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lyon_geom 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -820,36 +354,14 @@ name = "lzw" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "matches" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "memchr" -version = "2.1.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "memmap" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -857,37 +369,20 @@ name = "memoffset" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "mime" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "miniz-sys" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "nodrop" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "num-derive" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -923,167 +418,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "num_cpus" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "objc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "ordermap" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "pango-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pathfinder" -version = "0.2.0" -dependencies = [ - "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "font-kit 0.1.0 (git+https://github.com/pcwalton/font-kit)", - "lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pathfinder_geometry 0.3.0", - "pathfinder_partitioner 0.2.0", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pathfinder_geometry" version = "0.3.0" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pathfinder_gfx_utils" version = "0.2.0" dependencies = [ - "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "pathfinder_partitioner" -version = "0.2.0" -dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "half 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "lyon_geom 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pathfinder_geometry 0.3.0", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pathfinder_server" -version = "0.1.0" -dependencies = [ - "app_units 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "font-kit 0.1.0 (git+https://github.com/pcwalton/font-kit)", - "fontsan 0.4.0 (git+https://github.com/servo/fontsan.git)", - "image 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lyon_geom 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pathfinder_geometry 0.3.0", - "pathfinder_partitioner 0.2.0", - "rocket 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", - "rocket_codegen 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", - "rocket_contrib 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", - "rsvg 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pear" -version = "0.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "pear_codegen" -version = "0.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "yansi 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "percent-encoding" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "phf" -version = "0.7.23" +version = "0.7.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_shared" -version = "0.7.23" +version = "0.7.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "pkg-config" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "png" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "deflate 0.7.18 (registry+https://github.com/rust-lang/crates.io-index)", - "inflate 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)", + "inflate 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "num-iter 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "proc-macro2" -version = "0.4.19" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1100,17 +487,17 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quote" -version = "0.6.8" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1120,9 +507,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1140,15 +527,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "rayon" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rayon" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1162,9 +541,9 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1174,7 +553,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "redox_syscall" -version = "0.1.40" +version = "0.1.50" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1182,85 +561,27 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "ring" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rocket" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "cookie 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.10.13 (registry+https://github.com/rust-lang/crates.io-index)", - "isatty 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ordermap 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", - "pear 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)", - "pear_codegen 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "state 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "toml 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "yansi 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rocket_codegen" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "rocket 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "yansi 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rocket_contrib" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "rocket 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1271,67 +592,11 @@ dependencies = [ "xmlparser 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rsvg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-pixbuf 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rsvg-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rsvg-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "atk-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-sys-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-pixbuf-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pango-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "ryu" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "safemem" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "safemem" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "same-file" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "scoped_threadpool" version = "0.1.9" @@ -1344,58 +609,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.79" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "serde_derive" -version = "1.0.79" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "serde_json" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "servo-fontconfig" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-fontconfig-sys 4.0.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "servo-fontconfig-sys" -version = "4.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "expat-sys 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-freetype-sys 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "servo-freetype-sys" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cmake 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1418,19 +642,6 @@ name = "slab" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "smallvec" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "state" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "strsim" version = "0.7.0" @@ -1441,7 +652,7 @@ name = "svgdom" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "roxmltree 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "simplecss 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1454,37 +665,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "float-cmp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.14.9" +version = "0.15.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syn" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "synstructure" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1501,8 +691,8 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1519,84 +709,35 @@ name = "thread_local" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tile-svg" version = "0.1.0" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", "fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "hashbrown 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "jemallocator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "lyon_geom 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lyon_geom 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", "lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "pathfinder_geometry 0.3.0", "quickcheck 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "simdeez 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "svgtypes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "usvg 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "time" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "toml" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "traitobject" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "typeable" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "ucd-util" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "unicase" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "unicode-normalization" -version = "0.1.7" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1614,29 +755,6 @@ name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "unreachable" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "untrusted" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "url" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "usvg" version = "0.4.0" @@ -1644,8 +762,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lyon_geom 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "lyon_geom 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", "rctree 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "svgdom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1653,7 +771,7 @@ dependencies = [ [[package]] name = "utf8-ranges" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1663,32 +781,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "version_check" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "walkdir" -version = "2.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "winapi" -version = "0.2.8" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1705,7 +803,7 @@ name = "winapi-util" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1718,7 +816,7 @@ name = "wincolor" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1727,208 +825,104 @@ name = "xmlparser" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "yansi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[patch.unused]] -name = "ring" -version = "0.12.2" -source = "git+https://github.com/SergioBenitez/ring?branch=v0.12#9ccfa153a27aecc75bda009b339b0d0943381086" - [metadata] "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" -"checksum aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "68f56c7353e5a9547cbd76ed90f7bb5ffc3ba09d4ea9bd1d8c06c8b1142eeb5a" +"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum app_units 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fc3ec9d4c47b25a5a9e5c848e053640331c7cedb1637434d75db68b79fee8a7f" -"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" -"checksum atk-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "33a67fd81e1922dddc335887516f2f5254534e89c9d39fa89bca5d79bd150d34" +"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" -"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" -"checksum base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "96434f987501f0ed4eb336a411e0631ecd1afa11574fe148587adc4ff96143c9" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" -"checksum bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9f2fb9e29e72fd6bc12071533d5dc7664cb01480c59406f656d7ac25c7bd8ff7" -"checksum bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f" -"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -"checksum byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "90492c5858dd7d2e78691cfb89f90d273a2800fc11d98f60786e5d87e2f83781" -"checksum c_vec 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6237ac5a4b1e81c213c24c6437964c61e646df910a914b4ab1487b46df20bd13" -"checksum cairo-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6b5695f59fd036fe5741bc5a4eb20c78fbe42256e3b08a2af26bbcbe8070bf3" -"checksum cairo-sys-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7c6e18fecaeac51809db57f45f4553cc0975225a7eb435a7a7e91e5e8113a84d" -"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" -"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" +"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" +"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" +"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum cmake 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "848b314ea70f48f0e13828c5554e34200952ce5720d6d3aa466b4d983af6c70e" -"checksum cocoa 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "53a840785348e998a1433d1f9d0b350fd83e91711fae8507c76ce510afc77e72" "checksum color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd" -"checksum cookie 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "477eb650753e319be2ae77ec368a58c638f9f0c4d941c39bad95e950fb1d1d0d" -"checksum core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cc3532ec724375c7cb7ff0a097b714fde180bb1f6ed2ab27cfcd99ffca873cd2" -"checksum core-foundation-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a3fb15cdbdd9cf8b82d97d0296bb5cd3631bba58d6e31650a002a8e7fb5721f9" -"checksum core-graphics 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "62ceafe1622ffc9a332199096841d0ff9912ec8cf8f9cde01e254a7d5217cd10" -"checksum core-text 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f3f46450d6f2397261af420b4ccce23807add2e45fa206410a03d66fb7f050ae" "checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" "checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" -"checksum deflate 0.7.18 (registry+https://github.com/rust-lang/crates.io-index)" = "32c8120d981901a9970a3a1c97cf8b630e0fa8c3ca31e75b6fd6fd5f9f427b31" -"checksum dirs 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f679c09c1cf5428702cc10f6846c56e4e23420d3a88bcc9335b17c630a7b710b" -"checksum dwrote 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "031b304062005e27cc3a7e2be0880e176f468418a89d91a45ba72e82a8a9cfd5" +"checksum deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)" = "8a6abb26e16e8d419b5c78662aa9f82857c2386a073da266840e474d5055ec86" "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" -"checksum euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "70a2ebdf55fb9d6329046e026329a55ef8fbaae5ea833f56e170beb3125a8a5f" -"checksum expat-sys 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c470ccb972f2088549b023db8029ed9da9426f5affbf9b62efff7009ab8ed5b1" -"checksum failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7efb22686e4a466b1ec1a15c2898f91fa9cb340452496dca654032de20ff95b9" -"checksum failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "946d0e98a50d9831f5d589038d2ca7f8f455b1c21028c0db0e84116a12696426" +"checksum euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)" = "dbbf962bb6f877239a34491f2e0a12c6b824f389bc789eb90f1d70d4780b0727" "checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" "checksum float-cmp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "134a8fa843d80a51a5b77d36d42bc2def9edcb0262c914861d08129fd1926600" -"checksum float-ord 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e" -"checksum font-kit 0.1.0 (git+https://github.com/pcwalton/font-kit)" = "" -"checksum fontsan 0.4.0 (git+https://github.com/servo/fontsan.git)" = "" -"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -"checksum freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "11926b2b410b469d0e9399eca4cbbe237a9ef02176c485803b29216307e8e028" "checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -"checksum gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)" = "5e33ec290da0d127825013597dbdfc28bee4964690c7ce1166cbc2a7bd08b1bb" -"checksum gdk-pixbuf 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "16160d212ae91abe9f3324c3fb233929ba322dde63585d15cda3336f8c529ed1" -"checksum gdk-pixbuf-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "798f97101eea8180da363d0e80e07ec7ec6d1809306601c0100c1de5bc8b4f52" -"checksum gdk-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4ee916f5f25c5f4b21bd9dcb12a216ae697406940ff9476358c308a8ececada" -"checksum gif 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff3414b424657317e708489d2857d9575f4403698428b040b609b9d1c1a84a2c" -"checksum gio-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a303bbf7a5e75ab3b627117ff10e495d1b9e97e1d68966285ac2b1f6270091bc" -"checksum glib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9b0452824cc63066940f01adc721804919f0b76cdba3cfab977b00b87f16d4a" -"checksum glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9693049613ff52b93013cc3d2590366d8e530366d288438724b73f6c7dc4be8" -"checksum gobject-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60d507c87a71b1143c66ed21a969be9b99a76df234b342d733e787e6c9c7d7c2" -"checksum half 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee6c0438de3ca4d8cac2eec62b228e2f8865cfe9ebefea720406774223fa2d2e" +"checksum gif 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4bca55ac1f213920ce3527ccd62386f1f15fa3f1714aeee1cf93f2c416903f" "checksum hashbrown 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "64b7d419d0622ae02fe5da6b9a5e1964b610a65bb37923b976aeebb6dbb8f86e" -"checksum httparse 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7b6288d7db100340ca12873fd4d08ad1b8f206a9457798dfb17c018a33fee540" -"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" -"checksum hyper 0.10.13 (registry+https://github.com/rust-lang/crates.io-index)" = "368cb56b2740ebf4230520e2b90ebb0461e69034d85d1945febd9b3971426db2" -"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" "checksum image 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ebdff791af04e30089bde8ad2a632b86af433b40c04db8d70ad4b21487db7a6a" -"checksum inflate 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6f53b811ee8e2057ccf9643ca6b4277de90efaf5e61e55fd5254576926bb4245" -"checksum isatty 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e31a8281fc93ec9693494da65fbf28c0c2aa60a2eaec25dc58e2f31952e95edc" -"checksum itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f58856976b776fedd95533137617a02fb25719f40e7d9b01c7043cd65474f450" -"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" +"checksum inflate 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "84c683bde2d8413b8f1be3e459c30e4817672b6e7a31d9212b0323154e76eba7" "checksum jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "bfc62c8e50e381768ce8ee0428ee53741929f7ebd73e4d83f669bcf7693e00ae" "checksum jemallocator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9f0cd42ac65f758063fea55126b0148b1ce0a6354ff78e07a4d6806bc65c4ab3" "checksum jpeg-decoder 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "c8b7d43206b34b3f94ea9445174bda196e772049b9bddbc620c9d29b2d20110d" -"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" -"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" -"checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" -"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" +"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" +"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" "checksum libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "bff3ac7d6f23730d3b533c35ed75eef638167634476a499feef16c428d74b57b" -"checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f" -"checksum lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4d06ff7ff06f729ce5f4e227876cb88d10bc59cd4ae1e09fbb2bde15c850dc21" -"checksum lyon_geom 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d69cc8d0b54ed6d49ed2ef6b465e67ee89e92dfcb4bd839cbd58dc189c14efe8" +"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" +"checksum lyon_geom 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0f181b2b51b8f2edd7b37a97718e848933dcc7420c8cde081ba95dbb475b6975" "checksum lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e9dc8e0746b7cca11960b602f7fe037bb067746a01eab4aa502fed1494544843" "checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084" -"checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -"checksum memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b3629fe9fdbff6daa6c33b90f7c08355c1aca05a3d01fa8063b822fcf185f3b" -"checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff" +"checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" -"checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" -"checksum miniz-sys 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7e2b4" -"checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" -"checksum num-derive 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0d2c31b75c36a993d30c7a13d70513cb93f02acafdd5b7ba250f9b0e18615de7" +"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" +"checksum num-derive 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8af1847c907c2f04d7bfd572fb25bbb4385c637fe5be163cf2f8c5d778fe1e7d" "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "checksum num-iter 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)" = "af3fdbbc3291a5464dc57b03860ec37ca6bf915ed6ee385e7c6c052c422b2124" "checksum num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e" "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" -"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" -"checksum objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "9833ab0efe5361b1e2122a0544a5d3359576911a42cb098c2e59be8650807367" -"checksum ordermap 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b81cf3b8cb96aa0e73bbedfcdc9708d09fec2854ba8d474be4e6f666d7379e8b" -"checksum pango-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34f34a1be107fe16abb2744e0e206bee4b3b07460b5fddd3009a6aaf60bd69ab" -"checksum pear 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "353fe88ff7a430c0f39ca4ec19e1f8fa0062f696370e8df3080ac40139a63301" -"checksum pear_codegen 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0f3ef1db2d855e0c00fad8e5a8216a70df6d9c1c7f7a7ac9f1cf50675142b7" -"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" -"checksum phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "cec29da322b242f4c3098852c77a0ca261c9c01b806cae85a5572a1eb94db9a6" -"checksum phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93" -"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" +"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" +"checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" +"checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" "checksum png 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f54b9600d584d3b8a739e1662a595fab051329eff43f20e7d8cc22872962145b" -"checksum proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "ffe022fb8c8bd254524b0b3305906c1921fa37a84a644e29079a9e62200c3901" +"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quickcheck 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4537d3e4edf73a15dd059b75bed1c292d17d3ea7517f583cebe716794fcf816" -"checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5" +"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" -"checksum rayon 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a77c51c07654ddd93f6cb543c7a849863b03abc7e82591afda6dc8ad4ac3ac4a" -"checksum rayon 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "df7a791f788cb4c516f0e091301a29c2b71ef680db5e644a7d68835c8ae6dbfa" +"checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum rctree 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1817e0f0056f95bce0d6ab1a5be62ca24bd756b5547c20637ef47cc9a2065f4b" -"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" +"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341" -"checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" -"checksum ring 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f2a6dc7fc06a05e6de183c5b97058582e9da2de0c136eafe49609769c507724" -"checksum rocket 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc32be1d093e7b2f9718983318c6bf5a14f43d7ea01a0b5143c3450c90725b9" -"checksum rocket_codegen 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "bfc94e7781a8bc502f3614521ae94b562f209c7537671cb6169cbbe9dbcc6c5e" -"checksum rocket_contrib 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "c1bae00c367de4599157febc585431c7c647c5f0ffa8fa0e9e875edbbb0bd929" +"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" +"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" "checksum roxmltree 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "02660467d0c2da1b6276042501aee6e15ec5b8ff59423243f185b294cd53acf3" -"checksum rsvg 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2032b49fe075a3b921573286f7debe130aebdac6cb37fb197f9b517a4237024" -"checksum rsvg-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ceca0b663cfddd09062d7e3fe0a729765d1e61bbbbb6a31d5e23d141ff0db38" -"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" -"checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7" -"checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" -"checksum same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10f7794e2fda7f594866840e95f5c5962e886e228e68b6505885811a94dd728c" "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" -"checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9" -"checksum serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "31569d901045afbff7a9479f793177fe9259819aff10ab4f89ef69bbc5f567fe" -"checksum serde_json 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "d30ec34ac923489285d24688c7a9c0898d16edff27fc1f1bd854edeff6ca3b7f" -"checksum servo-fontconfig 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a088f8d775a5c5314aae09bd77340bc9c67d72b9a45258be34c83548b4814cd9" -"checksum servo-fontconfig-sys 4.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b0aa080856db55f188aaf36f01cae8c03448a6056552adb77d461179e44e1a14" -"checksum servo-freetype-sys 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9232032c2e85118c0282c6562c84cab12316e655491ba0a5d1905b2320060d1b" +"checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" +"checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" "checksum simdeez 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53d1e4a8ee9c44fa7c2d6464b679bd62c6b156edb865f084eb51af7b34efaa63" "checksum simplecss 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "135685097a85a64067df36e28a243e94a94f76d829087ce0be34eeb014260c0e" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" "checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" -"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" -"checksum state 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7345c971d1ef21ffdbd103a75990a15eb03604fc8b8852ca8cb418ee1a099028" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum svgdom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a9b53b3ed152fc6b871f7232a8772c640567fd25d056941450637ecba32924d" "checksum svgtypes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c43c25e6de7264024b5e351eb0c342039eb5acf51f2e9d0099bbd324b661453b" -"checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum syn 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9056ebe7f2d6a38bc63171816fd1d3430da5a43896de21676dc5c0a4b8274a11" -"checksum synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb9b7550d063ea184027c9b8c20ac167cd36d3e06b3a40bceb9d746dc1a7b7" +"checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" -"checksum toml 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a0263c6c02c4db6c8f7681f9fd35e90de799ebd4cfdeab77a38f4ff6b3d8c0d9" -"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" -"checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" -"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" -"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" -"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" -"checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" +"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" -"checksum url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2a321979c09843d272956e73700d12c4e7d3d92b2ee112b31548aef0d4efc5a6" "checksum usvg 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f9ebf4d5244ba2e8305caf9de7949377794ecdea5a9e3c84fc5610d78d21f5ee" -"checksum utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd70f467df6810094968e2fce0ee1bd0e87157aceb026a8c083bcf5e25b9efe4" +"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" -"checksum version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7716c242968ee87e5542f8021178248f267f295a5c4803beae8b8b7fd9bc6051" -"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "af464bc7be7b785c7ac72e266a6b67c4c9070155606f51655a650a6686204e35" -"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" -"checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd" +"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" +"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum xmlparser 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d78a7f29bb57edf63321d545d84f99360df71df36929a090bc067e1bcb65e34d" -"checksum yansi 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d60c3b48c9cdec42fb06b3b84b5b087405e1fa1c644a1af3930e4dfafe93de48" diff --git a/Cargo.toml b/Cargo.toml index ededb848..1e94f7fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,13 +2,7 @@ members = [ "geometry", "gfx-utils", - "partitioner", - "demo/server", "utils/area-lut", - "utils/frontend", "utils/gamma-lut", "utils/tile-svg", ] - -[patch.crates-io] -ring = { git = "https://github.com/SergioBenitez/ring", branch = "v0.12" } diff --git a/demo/server/Cargo.toml b/demo/server/Cargo.toml deleted file mode 100644 index b6eb1584..00000000 --- a/demo/server/Cargo.toml +++ /dev/null @@ -1,52 +0,0 @@ -[package] -name = "pathfinder_server" -version = "0.1.0" -authors = ["Patrick Walton "] - -[features] -default = [] -freetype = ["font-kit/loader-freetype-default"] -reftests = ["rsvg", "cairo-rs", "font-kit/loader-freetype-default"] - -[dependencies] -app_units = "0.7" -base64 = "0.6" -bincode = "1.0" -env_logger = "0.5" -euclid = "0.19" -image = "0.19" -lazy_static = "0.2" -log = "0.3" -lru-cache = "0.1" -lyon_geom = "0.12" -lyon_path = "0.12" -rocket = "0.3" -rocket_codegen = "0.3" -rocket_contrib = "0.3" -serde = "1.0" -serde_derive = "1.0" -serde_json = "1.0" - -[dependencies.cairo-rs] -version = "0.3" -features = ["png"] -optional = true - -[dependencies.rsvg] -version = "0.3" -optional = true - -[dependencies.fontsan] -git = "https://github.com/servo/fontsan.git" - -[dependencies.font-kit] -git = "https://github.com/pcwalton/font-kit" - -[dependencies.pathfinder_geometry] -path = "../../geometry" - -[dependencies.pathfinder_partitioner] -path = "../../partitioner" - -[patch.crates-io] -ring = { git = "https://github.com/SergioBenitez/ring", branch = "v0.12" } diff --git a/demo/server/package-lock.json b/demo/server/package-lock.json deleted file mode 100644 index 48e341a0..00000000 --- a/demo/server/package-lock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lockfileVersion": 1 -} diff --git a/demo/server/src/main.rs b/demo/server/src/main.rs deleted file mode 100644 index 3442427b..00000000 --- a/demo/server/src/main.rs +++ /dev/null @@ -1,952 +0,0 @@ -// pathfinder/demo/server/main.rs -// -// Copyright © 2018 The Pathfinder Project Developers. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -#![feature(decl_macro, plugin)] -#![plugin(rocket_codegen)] - -extern crate app_units; -extern crate base64; -extern crate env_logger; -extern crate euclid; -extern crate font_kit; -extern crate fontsan; -extern crate image; -extern crate lru_cache; -extern crate lyon_geom; -extern crate lyon_path; -extern crate pathfinder_geometry; -extern crate pathfinder_partitioner; -extern crate rocket; -extern crate rocket_contrib; - -#[macro_use] -extern crate lazy_static; -#[macro_use] -extern crate serde_derive; - -#[cfg(feature = "reftests")] -extern crate cairo; -#[cfg(feature = "reftests")] -extern crate rsvg; - -use euclid::{Point2D, Transform2D}; -use font_kit::canvas::Format as FontKitFormat; -use font_kit::canvas::{Canvas, RasterizationOptions}; -use font_kit::font::Font; -use font_kit::hinting::HintingOptions; -use font_kit::loaders; -use image::{DynamicImage, ImageBuffer, ImageFormat, ImageRgba8}; -use lru_cache::LruCache; -use lyon_path::PathEvent; -use lyon_path::builder::{FlatPathBuilder, PathBuilder}; -use pathfinder_geometry::cubic_to_quadratic::CubicToQuadraticTransformer; -use pathfinder_geometry::stroke::{StrokeStyle, StrokeToFillIter}; -use pathfinder_geometry::transform::Transform2DPathIter; -use lyon_path::iterator::PathIter; -use pathfinder_partitioner::FillRule; -use pathfinder_partitioner::mesh::Mesh; -use pathfinder_partitioner::mesh_pack::MeshPack; -use pathfinder_partitioner::partitioner::Partitioner; -use rocket::http::{ContentType, Header, Status}; -use rocket::request::Request; -use rocket::response::{NamedFile, Redirect, Responder, Response}; -use rocket_contrib::json::Json; -use std::fs::File; -use std::io::{self, Cursor, Read}; -use std::path::{self, PathBuf}; -use std::sync::{Arc, Mutex}; -use std::time::{Duration, Instant}; -use std::u32; - -#[cfg(feature = "reftests")] -use euclid::Size2D; -#[cfg(feature = "reftests")] -use cairo::{Format, ImageSurface}; -#[cfg(feature = "reftests")] -use rsvg::{Handle, HandleExt}; - -const SUGGESTED_JSON_SIZE_LIMIT: u64 = 32 * 1024 * 1024; - -const MESH_PACK_CACHE_SIZE: usize = 16; - -const CUBIC_TO_QUADRATIC_APPROX_TOLERANCE: f32 = 5.0; - -lazy_static! { - static ref MESH_PACK_CACHE: Mutex> = { - Mutex::new(LruCache::new(MESH_PACK_CACHE_SIZE)) - }; -} - -static STATIC_INDEX_PATH: &'static str = "../client/index.html"; -static STATIC_TEXT_DEMO_PATH: &'static str = "../client/text-demo.html"; -static STATIC_SVG_DEMO_PATH: &'static str = "../client/svg-demo.html"; -static STATIC_3D_DEMO_PATH: &'static str = "../client/3d-demo.html"; -static STATIC_TOOLS_BENCHMARK_PATH: &'static str = "../client/benchmark.html"; -static STATIC_TOOLS_REFERENCE_TEST_PATH: &'static str = "../client/reference-test.html"; -static STATIC_TOOLS_MESH_DEBUGGER_PATH: &'static str = "../client/mesh-debugger.html"; -static STATIC_DOC_API_PATH: &'static str = "../../target/doc"; -static STATIC_CSS_BOOTSTRAP_PATH: &'static str = "../client/node_modules/bootstrap/dist/css"; -static STATIC_CSS_PATH: &'static str = "../client/css"; -static STATIC_JS_BOOTSTRAP_PATH: &'static str = "../client/node_modules/bootstrap/dist/js"; -static STATIC_JS_JQUERY_PATH: &'static str = "../client/node_modules/jquery/dist"; -static STATIC_JS_POPPER_JS_PATH: &'static str = "../client/node_modules/popper.js/dist/umd"; -static STATIC_JS_PATHFINDER_PATH: &'static str = "../client"; -static STATIC_WOFF2_INTER_UI_PATH: &'static str = "../../resources/fonts/inter-ui"; -static STATIC_WOFF2_MATERIAL_ICONS_PATH: &'static str = "../../resources/fonts/material-icons"; -static STATIC_GLSL_PATH: &'static str = "../../shaders"; -static STATIC_DATA_PATH: &'static str = "../../resources/data"; -static STATIC_TEST_DATA_PATH: &'static str = "../../resources/tests"; -static STATIC_TEXTURES_PATH: &'static str = "../../resources/textures"; - -static STATIC_DOC_API_INDEX_URI: &'static str = "/doc/api/pathfinder/index.html"; - -static BUILTIN_FONTS: [(&'static str, &'static str); 4] = [ - ("open-sans", "../../resources/fonts/open-sans/OpenSans-Regular.ttf"), - ("nimbus-sans", "../../resources/fonts/nimbus-sans/NimbusSanL-Regu.ttf"), - ("eb-garamond", "../../resources/fonts/eb-garamond/EBGaramond12-Regular.ttf"), - ("inter-ui", "../../resources/fonts/inter-ui/Inter-UI-Regular.ttf"), -]; - -static BUILTIN_SVGS: [(&'static str, &'static str); 4] = [ - ("tiger", "../../resources/svg/Ghostscript_Tiger.svg"), - ("logo", "../../resources/svg/pathfinder_logo.svg"), - ("icons", "../../resources/svg/material_design_icons.svg"), - ("logo-bw", "../../resources/svg/pathfinder_logo_bw.svg"), -]; - -#[derive(Clone, Debug, PartialEq, Eq, Hash)] -struct MeshPackCacheKey { - builtin_font_name: String, - glyph_ids: Vec, -} - -#[derive(Clone, Serialize, Deserialize)] -struct PartitionFontRequest { - face: FontRequestFace, - #[serde(rename = "fontIndex")] - font_index: u32, - glyphs: Vec, - #[serde(rename = "pointSize")] - point_size: f64, -} - -#[derive(Clone, Serialize, Deserialize)] -enum FontRequestFace { - /// One of the builtin fonts in `BUILTIN_FONTS`. - Builtin(String), - /// Base64-encoded OTF data. - Custom(String), -} - -#[derive(Clone, Copy, Serialize, Deserialize)] -enum ReferenceTextRenderer { - #[serde(rename = "freetype")] - FreeType, - #[serde(rename = "core-graphics")] - #[cfg(target_os = "macos")] - CoreGraphics, -} - -#[derive(Clone, Copy, Serialize, Deserialize)] -enum ReferenceSvgRenderer { - #[serde(rename = "pixman")] - Pixman, -} - -#[derive(Clone, Serialize, Deserialize)] -struct RenderTextReferenceRequest { - face: FontRequestFace, - #[serde(rename = "fontIndex")] - font_index: u32, - glyph: u32, - - #[serde(rename = "pointSize")] - point_size: f64, - renderer: ReferenceTextRenderer, -} - -#[derive(Clone, Serialize, Deserialize)] -struct RenderSvgReferenceRequest { - name: String, - scale: f64, - renderer: ReferenceSvgRenderer, -} - -#[derive(Clone, Copy, Serialize, Deserialize)] -struct PartitionGlyph { - id: u32, - transform: Transform2D, -} - -#[derive(Clone, Serialize, Deserialize)] -struct PartitionFontResponse { - #[serde(rename = "pathData")] - path_data: String, -} - -#[derive(Clone, Copy, Debug, Serialize, Deserialize)] -enum FontError { - UnknownBuiltinFont, - Base64DecodingFailed, - FontSanitizationFailed, - FontLoadingFailed, - RasterizationFailed, - ReferenceRasterizerUnavailable, - Unimplemented, -} - -#[derive(Clone, Copy, Debug, Serialize, Deserialize)] -enum SvgError { - ReftestsDisabled, - UnknownBuiltinSvg, - LoadingFailed, - ImageWritingFailed, -} - -#[derive(Clone, Copy, Debug, Serialize, Deserialize)] -enum PartitionSvgPathsError { - UnknownSvgPathCommandType, - Unimplemented, -} - -#[derive(Clone, Serialize, Deserialize)] -struct PartitionSvgPathsRequest { - paths: Vec, - #[serde(rename = "viewBoxWidth")] - view_box_width: f32, - #[serde(rename = "viewBoxHeight")] - view_box_height: f32, -} - -#[derive(Clone, Serialize, Deserialize)] -struct PartitionSvgPath { - segments: Vec, - kind: PartitionSvgPathKind, -} - -#[derive(Clone, Copy, Serialize, Deserialize)] -enum PartitionSvgPathKind { - Fill(PartitionSvgFillRule), - Stroke(f32), -} - -#[derive(Clone, Copy, Serialize, Deserialize)] -enum PartitionSvgFillRule { - Winding, - EvenOdd, -} - -impl PartitionSvgFillRule { - fn to_fill_rule(self) -> FillRule { - match self { - PartitionSvgFillRule::Winding => FillRule::Winding, - PartitionSvgFillRule::EvenOdd => FillRule::EvenOdd, - } - } -} - -#[derive(Clone)] -struct PathDescriptor { - path_index: usize, - fill_rule: FillRule, -} - -#[derive(Clone, Serialize, Deserialize)] -struct PartitionSvgPathCommand { - #[serde(rename = "type")] - kind: char, - values: Vec, -} - -struct PathPartitioningResult { - encoded_data: Arc>, - time: Duration, -} - -impl PathPartitioningResult { - fn compute(pack: &mut MeshPack, - path_descriptors: &[PathDescriptor], - paths: &[Vec], - approx_tolerance: Option, - tile: bool) - -> PathPartitioningResult { - let timestamp_before = Instant::now(); - - for (path, path_descriptor) in paths.iter().zip(path_descriptors.iter()) { - if !tile { - let mut partitioner = Partitioner::new(); - if let Some(tolerance) = approx_tolerance { - partitioner.builder_mut().set_approx_tolerance(tolerance); - } - - path.iter().for_each(|event| partitioner.builder_mut().path_event(*event)); - partitioner.partition(path_descriptor.fill_rule); - partitioner.builder_mut().build_and_reset(); - - partitioner.mesh_mut().push_stencil_segments( - CubicToQuadraticTransformer::new(path.iter().cloned(), - CUBIC_TO_QUADRATIC_APPROX_TOLERANCE)); - partitioner.mesh_mut().push_stencil_normals( - CubicToQuadraticTransformer::new(path.iter().cloned(), - CUBIC_TO_QUADRATIC_APPROX_TOLERANCE)); - - pack.push(partitioner.into_mesh()); - } else { - let tiles = tiling::tile_path(path); - for tile_info in tiles { - let mut mesh = Mesh::new(); - mesh.push_stencil_segments(tile_info.events.into_iter()); - pack.push(mesh); - } - } - } - - let time_elapsed = timestamp_before.elapsed(); - - eprintln!("path partitioning time: {}ms", - time_elapsed.as_secs() as f64 * 1000.0 + - time_elapsed.subsec_nanos() as f64 * 1e-6); - - let mut data_buffer = Cursor::new(vec![]); - drop(pack.serialize_into(&mut data_buffer)); - - PathPartitioningResult { - encoded_data: Arc::new(data_buffer.into_inner()), - time: time_elapsed, - } - } - - fn elapsed_ms(&self) -> f64 { - self.time.as_secs() as f64 * 1000.0 + self.time.subsec_nanos() as f64 * 1e-6 - } -} - -#[derive(Clone)] -struct PartitionResponder { - data: Arc>, - time: f64, -} - -impl<'r> Responder<'r> for PartitionResponder { - fn respond_to(self, _: &Request) -> Result, Status> { - let mut builder = Response::build(); - builder.header(ContentType::new("application", "vnd.mozilla.pfml")); - builder.header(Header::new("Server-Timing", format!("Partitioning={}", self.time))); - - // FIXME(pcwalton): Don't clone! Requires a `Cursor` implementation for `Arc>`… - builder.sized_body(Cursor::new((*self.data).clone())); - builder.ok() - } -} - -#[derive(Clone)] -struct ReferenceImage { - image: DynamicImage, -} - -impl<'r> Responder<'r> for ReferenceImage { - fn respond_to(self, _: &Request) -> Result, Status> { - let mut builder = Response::build(); - builder.header(ContentType::PNG); - - let mut bytes = vec![]; - try!(self.image - .write_to(&mut bytes, ImageFormat::PNG) - .map_err(|_| Status::InternalServerError)); - builder.sized_body(Cursor::new(bytes)); - builder.ok() - } -} - -// Fetches the OTF data. -fn otf_data_from_request(face: &FontRequestFace) -> Result>, FontError> { - match *face { - FontRequestFace::Builtin(ref builtin_font_name) => { - // Read in the builtin font. - match BUILTIN_FONTS.iter().filter(|& &(name, _)| name == builtin_font_name).next() { - Some(&(_, path)) => { - let mut data = vec![]; - File::open(path).expect("Couldn't find builtin font!") - .read_to_end(&mut data) - .expect("Couldn't read builtin font!"); - Ok(Arc::new(data)) - } - None => return Err(FontError::UnknownBuiltinFont), - } - } - FontRequestFace::Custom(ref encoded_data) => { - // Decode Base64-encoded OTF data. - let unsafe_otf_data = match base64::decode(encoded_data) { - Ok(unsafe_otf_data) => unsafe_otf_data, - Err(_) => return Err(FontError::Base64DecodingFailed), - }; - - // Sanitize. - match fontsan::process(&unsafe_otf_data) { - Ok(otf_data) => Ok(Arc::new(otf_data)), - Err(_) => return Err(FontError::FontSanitizationFailed), - } - } - } -} - -// Fetches the SVG data. -#[cfg(feature = "reftests")] -fn svg_data_from_request(builtin_svg_name: &str) -> Result>, SvgError> { - // Read in the builtin SVG. - match BUILTIN_SVGS.iter().filter(|& &(name, _)| name == builtin_svg_name).next() { - Some(&(_, path)) => { - let mut data = vec![]; - File::open(path).expect("Couldn't find builtin SVG!") - .read_to_end(&mut data) - .expect("Couldn't read builtin SVG!"); - Ok(Arc::new(data)) - } - None => return Err(SvgError::UnknownBuiltinSvg), - } -} - -#[post("/partition-font", format = "application/json", data = "")] -fn partition_font(request: Json) -> Result { - // Check the cache. - let cache_key = match request.face { - FontRequestFace::Builtin(ref builtin_font_name) => { - Some(MeshPackCacheKey { - builtin_font_name: (*builtin_font_name).clone(), - glyph_ids: request.glyphs.iter().map(|glyph| glyph.id).collect(), - }) - } - _ => None, - }; - - if let Some(ref cache_key) = cache_key { - if let Ok(mut mesh_library_cache) = MESH_PACK_CACHE.lock() { - if let Some(cache_entry) = mesh_library_cache.get_mut(cache_key) { - return Ok((*cache_entry).clone()) - } - } - } - - // Parse glyph data. - let otf_data = try!(otf_data_from_request(&request.face)); - let font = match Font::from_bytes(otf_data, request.font_index) { - Ok(font) => font, - Err(_) => return Err(FontError::FontLoadingFailed), - }; - - // Read glyph info. - let mut paths: Vec> = vec![]; - let mut path_descriptors = vec![]; - - for (glyph_index, glyph) in request.glyphs.iter().enumerate() { - // This might fail; if so, just leave it blank. - // FIXME(pcwalton): Should we add first-class support for transforms to `font-kit`? - let mut path_builder = lyon_path::default::Path::builder(); - match font.outline(glyph.id, HintingOptions::None, &mut path_builder) { - Ok(()) => { - paths.push(Transform2DPathIter::new(path_builder.build().into_iter(), - &glyph.transform).collect()) - } - Err(_) => paths.push(vec![]), - }; - - path_descriptors.push(PathDescriptor { - path_index: glyph_index, - fill_rule: FillRule::Winding, - }) - } - - // Partition the decoded glyph outlines. - let mut pack = MeshPack::new(); - let path_partitioning_result = PathPartitioningResult::compute(&mut pack, - &path_descriptors, - &paths, - None, - false); - - // Build the response. - let elapsed_ms = path_partitioning_result.elapsed_ms(); - let responder = PartitionResponder { - data: path_partitioning_result.encoded_data, - time: elapsed_ms, - }; - - if let Some(cache_key) = cache_key { - if let Ok(mut mesh_library_cache) = MESH_PACK_CACHE.lock() { - mesh_library_cache.insert(cache_key, responder.clone()); - } - } - - Ok(responder) -} - -#[post("/partition-svg-paths", format = "application/json", data = "")] -fn partition_svg_paths(request: Json) - -> Result { - // Parse the SVG path. - // - // The client has already normalized it, so we only have to handle `M`, `L`, `C`, and `Z` - // commands. - let mut paths = vec![]; - let mut path_descriptors = vec![]; - let mut pack = MeshPack::new(); - let mut path_index = 0; - - for path in &request.paths { - let mut stream = vec![]; - - for segment in &path.segments { - match segment.kind { - 'M' => { - stream.push(PathEvent::MoveTo(Point2D::new(segment.values[0] as f32, - segment.values[1] as f32))) - } - 'L' => { - stream.push(PathEvent::LineTo(Point2D::new(segment.values[0] as f32, - segment.values[1] as f32))) - } - 'C' => { - stream.push(PathEvent::CubicTo(Point2D::new(segment.values[0] as f32, - segment.values[1] as f32), - Point2D::new(segment.values[2] as f32, - segment.values[3] as f32), - Point2D::new(segment.values[4] as f32, - segment.values[5] as f32))) - } - 'Z' => stream.push(PathEvent::Close), - _ => return Err(PartitionSvgPathsError::UnknownSvgPathCommandType), - } - } - - let fill_rule = match path.kind { - PartitionSvgPathKind::Fill(fill_rule) => fill_rule.to_fill_rule(), - PartitionSvgPathKind::Stroke(_) => FillRule::Winding, - }; - - path_descriptors.push(PathDescriptor { - path_index: path_index, - fill_rule: fill_rule, - }); - - match path.kind { - PartitionSvgPathKind::Fill(_) => paths.push(stream), - PartitionSvgPathKind::Stroke(stroke_width) => { - let iterator = PathIter::new(stream.into_iter()); - let stroke_style = StrokeStyle::new(stroke_width); - let path: Vec<_> = StrokeToFillIter::new(iterator, stroke_style).collect(); - paths.push(path); - } - } - - path_index += 1; - } - - // Compute approximation tolerance. - let tolerance = f32::max(request.view_box_width, request.view_box_height) * 0.001; - - // Partition the paths. - let path_partitioning_result = PathPartitioningResult::compute(&mut pack, - &path_descriptors, - &paths, - Some(tolerance), - false); - - // Return the response. - let elapsed_ms = path_partitioning_result.elapsed_ms(); - Ok(PartitionResponder { - data: path_partitioning_result.encoded_data, - time: elapsed_ms, - }) -} - -#[post("/render-reference/text", format = "application/json", data = "")] -fn render_reference_text(request: Json) - -> Result { - let otf_data = try!(otf_data_from_request(&request.face)); - - // Rasterize the glyph using the right rasterizer. - let mut canvas; - match request.renderer { - ReferenceTextRenderer::FreeType => { - let loader = match Font::from_bytes(otf_data, request.font_index) { - Ok(loader) => loader, - Err(_) => return Err(FontError::FontLoadingFailed), - }; - let glyph_rect = try!(loader.raster_bounds(request.glyph, - request.point_size as f32, - &Point2D::zero(), - HintingOptions::None, - RasterizationOptions::SubpixelAa) - .map_err(|_| FontError::RasterizationFailed)); - let glyph_dimensions = glyph_rect.size.to_u32(); - canvas = Canvas::new(&glyph_dimensions, FontKitFormat::Rgba32); - let origin = Point2D::new(-glyph_rect.origin.x, -glyph_rect.origin.y).to_f32(); - try!(loader.rasterize_glyph(&mut canvas, - request.glyph, - request.point_size as f32, - &origin, - HintingOptions::None, - RasterizationOptions::SubpixelAa) - .map_err(|_| FontError::RasterizationFailed)); - } - #[cfg(target_os = "macos")] - ReferenceTextRenderer::CoreGraphics => { - let loader = match loaders::core_text::Font::from_bytes(otf_data, request.font_index) { - Ok(loader) => loader, - Err(_) => return Err(FontError::FontLoadingFailed), - }; - let glyph_rect = try!(loader.raster_bounds(request.glyph, - request.point_size as f32, - &Point2D::zero(), - HintingOptions::None, - RasterizationOptions::SubpixelAa) - .map_err(|_| FontError::RasterizationFailed)); - let glyph_dimensions = glyph_rect.size.to_u32(); - canvas = Canvas::new(&glyph_dimensions, FontKitFormat::Rgba32); - let origin = Point2D::new(-glyph_rect.origin.x, -glyph_rect.origin.y).to_f32(); - try!(loader.rasterize_glyph(&mut canvas, - request.glyph, - request.point_size as f32, - &origin, - HintingOptions::None, - RasterizationOptions::SubpixelAa) - .map_err(|_| FontError::RasterizationFailed)); - } - }; - - let image_buffer = ImageBuffer::from_raw(canvas.size.width, - canvas.size.height, - canvas.pixels).unwrap(); - let reference_image = ReferenceImage { - image: ImageRgba8(image_buffer), - }; - - Ok(reference_image) -} - -#[cfg(feature = "reftests")] -#[post("/render-reference/svg", format = "application/json", data = "")] -fn render_reference_svg(request: Json) - -> Result { - let svg_data = try!(svg_data_from_request(&request.name)); - let svg_string = String::from_utf8_lossy(&*svg_data); - let svg_handle = try!(Handle::new_from_str(&svg_string).map_err(|_| SvgError::LoadingFailed)); - - let svg_dimensions = svg_handle.get_dimensions(); - let mut image_size = Size2D::new(svg_dimensions.width as f64, svg_dimensions.height as f64); - image_size = (image_size * request.scale).ceil(); - - // Rasterize the SVG using the appropriate rasterizer. - let mut surface = ImageSurface::create(Format::ARgb32, - image_size.width as i32, - image_size.height as i32).unwrap(); - - { - let cairo_context = cairo::Context::new(&surface); - cairo_context.scale(request.scale, request.scale); - svg_handle.render_cairo(&cairo_context); - } - - let mut image_data = (*surface.get_data().unwrap()).to_vec(); - image_data.chunks_mut(4).for_each(|color| color.swap(0, 2)); - - let image_buffer = match ImageBuffer::from_raw(image_size.width as u32, - image_size.height as u32, - image_data) { - None => return Err(SvgError::ImageWritingFailed), - Some(image_buffer) => image_buffer, - }; - - Ok(ReferenceImage { - image: ImageRgba8(image_buffer), - }) -} - -#[cfg(not(feature = "reftests"))] -#[post("/render-reference/svg", format = "application/json", data = "")] -#[allow(unused_variables)] -fn render_reference_svg(request: Json) - -> Result { - Err(SvgError::ReftestsDisabled) -} - -// Static files -#[get("/")] -fn static_index() -> io::Result { - NamedFile::open(STATIC_INDEX_PATH) -} -#[get("/demo/text")] -fn static_demo_text() -> io::Result { - NamedFile::open(STATIC_TEXT_DEMO_PATH) -} -#[get("/demo/svg")] -fn static_demo_svg() -> io::Result { - NamedFile::open(STATIC_SVG_DEMO_PATH) -} -#[get("/demo/3d")] -fn static_demo_3d() -> io::Result { - NamedFile::open(STATIC_3D_DEMO_PATH) -} -#[get("/tools/benchmark")] -fn static_tools_benchmark() -> io::Result { - NamedFile::open(STATIC_TOOLS_BENCHMARK_PATH) -} -#[get("/tools/reference-test")] -fn static_tools_reference_test() -> io::Result { - NamedFile::open(STATIC_TOOLS_REFERENCE_TEST_PATH) -} -#[get("/tools/mesh-debugger")] -fn static_tools_mesh_debugger() -> io::Result { - NamedFile::open(STATIC_TOOLS_MESH_DEBUGGER_PATH) -} -#[get("/doc/api")] -fn static_doc_api_index() -> Redirect { - Redirect::to(STATIC_DOC_API_INDEX_URI) -} -#[get("/doc/api/")] -fn static_doc_api(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_DOC_API_PATH).join(file)).ok() -} -#[get("/css/bootstrap/")] -fn static_css_bootstrap(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_CSS_BOOTSTRAP_PATH).join(file)).ok() -} -#[get("/css/")] -fn static_css(file: String) -> Option { - NamedFile::open(path::Path::new(STATIC_CSS_PATH).join(file)).ok() -} -#[get("/js/bootstrap/")] -fn static_js_bootstrap(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_JS_BOOTSTRAP_PATH).join(file)).ok() -} -#[get("/js/jquery/")] -fn static_js_jquery(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_JS_JQUERY_PATH).join(file)).ok() -} -#[get("/js/popper.js/")] -fn static_js_popper_js(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_JS_POPPER_JS_PATH).join(file)).ok() -} -#[get("/js/pathfinder/")] -fn static_js_pathfinder(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_JS_PATHFINDER_PATH).join(file)).ok() -} -#[get("/woff2/inter-ui/")] -fn static_woff2_inter_ui(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_WOFF2_INTER_UI_PATH).join(file)).ok() -} -#[get("/woff2/material-icons/")] -fn static_woff2_material_icons(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_WOFF2_MATERIAL_ICONS_PATH).join(file)).ok() -} -#[get("/glsl/")] -fn static_glsl(file: PathBuf) -> Option { - Shader::open(path::Path::new(STATIC_GLSL_PATH).join(file)).ok() -} -#[get("/otf/demo/")] -fn static_otf_demo(font_name: String) -> Option { - BUILTIN_FONTS.iter() - .filter(|& &(name, _)| name == font_name) - .next() - .and_then(|&(_, path)| NamedFile::open(path::Path::new(path)).ok()) -} -#[get("/svg/demo/")] -fn static_svg_demo(svg_name: String) -> Option { - BUILTIN_SVGS.iter() - .filter(|& &(name, _)| name == svg_name) - .next() - .and_then(|&(_, path)| NamedFile::open(path::Path::new(path)).ok()) -} -#[get("/data/")] -fn static_data(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_DATA_PATH).join(file)).ok() -} -#[get("/test-data/")] -fn static_test_data(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_TEST_DATA_PATH).join(file)).ok() -} -#[get("/textures/")] -fn static_textures(file: PathBuf) -> Option { - NamedFile::open(path::Path::new(STATIC_TEXTURES_PATH).join(file)).ok() -} - -struct Shader { - file: File, -} - -impl Shader { - fn open(path: PathBuf) -> io::Result { - File::open(path).map(|file| Shader { - file: file, - }) - } -} - -impl<'a> Responder<'a> for Shader { - fn respond_to(self, _: &Request) -> Result, Status> { - Response::build().header(ContentType::Plain).streamed_body(self.file).ok() - } -} - -fn main() { - drop(env_logger::init()); - - let rocket = rocket::ignite(); - - match rocket.config().limits.get("json") { - Some(size) if size >= SUGGESTED_JSON_SIZE_LIMIT => {} - None | Some(_) => { - eprintln!("warning: the JSON size limit is small; many SVGs will not upload properly"); - eprintln!("warning: adding the following to `Rocket.toml` is suggested:"); - eprintln!("warning: [development]"); - eprintln!("warning: limits = {{ json = 33554432 }}"); - } - } - - rocket.mount("/", routes![ - partition_font, - partition_svg_paths, - render_reference_text, - render_reference_svg, - static_index, - static_demo_text, - static_demo_svg, - static_demo_3d, - static_tools_benchmark, - static_tools_reference_test, - static_tools_mesh_debugger, - static_doc_api_index, - static_doc_api, - static_css, - static_css_bootstrap, - static_js_bootstrap, - static_js_jquery, - static_js_popper_js, - static_js_pathfinder, - static_woff2_inter_ui, - static_woff2_material_icons, - static_glsl, - static_otf_demo, - static_svg_demo, - static_data, - static_test_data, - static_textures, - ]).launch(); -} - -mod tiling { - use euclid::{Point2D, Rect, Size2D, Vector2D}; - use lyon_path::PathEvent; - use pathfinder_geometry::clip::RectClipper; - use std::f32; - use std::mem; - - const TILE_SIZE: f32 = 8.0; - - pub fn tile_path(path: &[PathEvent]) -> Vec { - let mut tiles = vec![]; - - let mut all_points = vec![]; - for event in path { - match *event { - PathEvent::MoveTo(point) | PathEvent::LineTo(point) => all_points.push(point), - PathEvent::QuadraticTo(point0, point1) => { - all_points.extend_from_slice(&[point0, point1]) - } - PathEvent::CubicTo(point0, point1, point2) => { - all_points.extend_from_slice(&[point0, point1, point2]) - } - PathEvent::Arc(..) | PathEvent::Close => {} - } - } - - let bounding_rect = Rect::from_points(all_points); - //eprintln!("path {}: bounding rect = {:?}", path_index, bounding_rect); - - let tile_size = Size2D::new(TILE_SIZE, TILE_SIZE); - let (mut full_tile_count, mut tile_count) = (0, 0); - let mut y = bounding_rect.origin.y - bounding_rect.origin.y % TILE_SIZE; - - loop { - let mut x = bounding_rect.origin.x - bounding_rect.origin.x % TILE_SIZE; - loop { - let origin = Point2D::new(x, y); - let clipper = RectClipper::new(&Rect::new(origin, tile_size), path); - let mut tile_path = clipper.clip(); - simplify_path(&mut tile_path); - translate_path(&mut tile_path, &Vector2D::new(-x, -y)); - //eprintln!("({},{}): {:?}", x, y, tile_path); - - if !tile_path.is_empty() { - tiles.push(TileInfo { - events: tile_path, - origin, - }); - - full_tile_count += 1; - } else { - tile_count += 1; - } - - if x < bounding_rect.max_x() { - x += TILE_SIZE; - } else { - break - } - } - - if y < bounding_rect.max_y() { - y += TILE_SIZE; - } else { - break - } - } - - tiles - } - - fn simplify_path(output: &mut Vec) { - let mut subpath = vec![]; - for event in mem::replace(output, vec![]) { - subpath.push(event); - if let PathEvent::Close = event { - if subpath.len() > 2 { - output.extend_from_slice(&subpath); - } - subpath.clear(); - } - } - } - - fn translate_path(output: &mut [PathEvent], vector: &Vector2D) { - for event in output { - match *event { - PathEvent::Close => {} - PathEvent::MoveTo(ref mut to) | PathEvent::LineTo(ref mut to) => *to += *vector, - PathEvent::QuadraticTo(ref mut cp, ref mut to) => { - *cp += *vector; - *to += *vector; - } - PathEvent::CubicTo(ref mut cp0, ref mut cp1, ref mut to) => { - *cp0 += *vector; - *cp1 += *vector; - *to += *vector; - } - PathEvent::Arc(ref mut center, _, _, _) => *center += *vector, - } - } - } - - #[derive(Debug)] - pub struct TileInfo { - pub events: Vec, - pub origin: Point2D, - } -} diff --git a/utils/tile-svg/src/main.rs b/utils/tile-svg/src/main.rs index ed5bd997..51b7369d 100644 --- a/utils/tile-svg/src/main.rs +++ b/utils/tile-svg/src/main.rs @@ -21,11 +21,10 @@ extern crate rand; use arrayvec::ArrayVec; use byteorder::{LittleEndian, WriteBytesExt}; use clap::{App, Arg}; -use euclid::{Point2D, Rect, Size2D, Transform2D}; +use euclid::{Point2D, Rect, Size2D}; use fixedbitset::FixedBitSet; use hashbrown::HashMap; use jemallocator; -use lyon_geom::{CubicBezierSegment, QuadraticBezierSegment}; use lyon_path::PathEvent; use lyon_path::iterator::PathIter; use pathfinder_geometry::stroke::{StrokeStyle, StrokeToFillIter}; @@ -451,23 +450,23 @@ impl Contour { fn segment_after(&self, point_index: u32) -> Segment { debug_assert!(self.point_is_endpoint(point_index)); - let mut segment = Segment::new(); - segment.flags |= SegmentFlags::HAS_ENDPOINTS; + let mut segment = Segment::none(); segment.baseline.set_from(&self.position_of(point_index)); let point1_index = self.add_to_point_index(point_index, 1); if self.point_is_endpoint(point1_index) { segment.baseline.set_to(&self.position_of(point1_index)); + segment.kind = SegmentKind::Line; } else { segment.ctrl.set_from(&self.position_of(point1_index)); - segment.flags |= SegmentFlags::HAS_CONTROL_POINT_0; let point2_index = self.add_to_point_index(point_index, 2); if self.point_is_endpoint(point2_index) { segment.baseline.set_to(&self.position_of(point2_index)); + segment.kind = SegmentKind::Quadratic; } else { segment.ctrl.set_to(&self.position_of(point2_index)); - segment.flags |= SegmentFlags::HAS_CONTROL_POINT_1; + segment.kind = SegmentKind::Cubic; let point3_index = self.add_to_point_index(point_index, 3); segment.baseline.set_to(&self.position_of(point3_index)); @@ -655,15 +654,15 @@ impl<'a> Iterator for ContourIter<'a> { struct Segment { baseline: LineSegmentF32, ctrl: LineSegmentF32, - flags: SegmentFlags, + kind: SegmentKind, } impl Segment { - fn new() -> Segment { + fn none() -> Segment { Segment { baseline: LineSegmentF32::default(), ctrl: LineSegmentF32::default(), - flags: SegmentFlags::empty(), + kind: SegmentKind::None, } } @@ -671,31 +670,19 @@ impl Segment { Segment { baseline: *line, ctrl: LineSegmentF32::default(), - flags: SegmentFlags::HAS_ENDPOINTS, + kind: SegmentKind::Line, } } - fn as_line_segment(&self) -> Option { - if !self.flags.contains(SegmentFlags::HAS_CONTROL_POINT_0) { - Some(self.baseline) - } else { - None - } + fn as_line_segment(&self) -> LineSegmentF32 { + debug_assert!(self.is_line_segment()); + self.baseline } - fn is_none(&self) -> bool { - !self.flags.contains(SegmentFlags::HAS_ENDPOINTS) - } - - fn is_line_segment(&self) -> bool { - self.flags.contains(SegmentFlags::HAS_ENDPOINTS) && - !self.flags.contains(SegmentFlags::HAS_CONTROL_POINT_0 | - SegmentFlags::HAS_CONTROL_POINT_1) - } - - fn is_cubic_segment(&self) -> bool { - self.flags.contains(SegmentFlags::HAS_CONTROL_POINT_0 | SegmentFlags::HAS_CONTROL_POINT_1) - } + fn is_none(&self) -> bool { self.kind == SegmentKind::None } + fn is_line_segment(&self) -> bool { self.kind == SegmentKind::Line } + fn is_quadratic_segment(&self) -> bool { self.kind == SegmentKind::Quadratic } + fn is_cubic_segment(&self) -> bool { self.kind == SegmentKind::Cubic } fn as_cubic_segment(&self) -> CubicSegment { debug_assert!(self.is_cubic_segment()); @@ -719,12 +706,8 @@ impl Segment { fn reversed(&self) -> Segment { Segment { baseline: self.baseline.reversed(), - ctrl: if !self.flags.contains(SegmentFlags::HAS_CONTROL_POINT_1) { - self.ctrl - } else { - self.ctrl.reversed() - }, - flags: self.flags, + ctrl: if self.is_quadratic_segment() { self.ctrl } else { self.ctrl.reversed() }, + kind: self.kind, } } @@ -739,12 +722,12 @@ impl Segment { } } -bitflags! { - struct SegmentFlags: u8 { - const HAS_ENDPOINTS = 0x01; - const HAS_CONTROL_POINT_0 = 0x02; - const HAS_CONTROL_POINT_1 = 0x04; - } +#[derive(Clone, Copy, Debug, PartialEq)] +enum SegmentKind { + None, + Line, + Quadratic, + Cubic, } #[derive(Clone, Copy, Debug)] @@ -816,17 +799,14 @@ impl<'s> CubicSegment<'s> { let baseline1 = assemble(&p0123, &p0p3, 0, 1); let ctrl1 = assemble(&p012p123, &p12p23, 1, 1); - let flags = SegmentFlags::HAS_ENDPOINTS | SegmentFlags::HAS_CONTROL_POINT_0 | - SegmentFlags::HAS_CONTROL_POINT_1; - return (Segment { baseline: LineSegmentF32(baseline0), ctrl: LineSegmentF32(ctrl0), - flags, + kind: SegmentKind::Cubic, }, Segment { baseline: LineSegmentF32(baseline1), ctrl: LineSegmentF32(ctrl1), - flags, + kind: SegmentKind::Cubic, }) } @@ -1714,12 +1694,6 @@ fn usvg_rect_to_euclid_rect(rect: &UsvgRect) -> Rect { Rect::new(Point2D::new(rect.x, rect.y), Size2D::new(rect.width, rect.height)).to_f32() } -fn usvg_transform_to_euclid_transform_2d(transform: &UsvgTransform) -> Transform2D { - Transform2D::row_major(transform.a as f32, transform.b as f32, - transform.c as f32, transform.d as f32, - transform.e as f32, transform.f as f32) -} - fn usvg_transform_to_transform_2d(transform: &UsvgTransform) -> Transform2DF32 { Transform2DF32::row_major(transform.a as f32, transform.b as f32, transform.c as f32, transform.d as f32, @@ -1849,23 +1823,22 @@ impl Iterator for MonotonicConversionIter where I: Iterator { - let mut segment = Segment::new(); + let mut segment = Segment::none(); segment.baseline = LineSegmentF32::new(&Point2DF32::from_euclid(self.last_point), &Point2DF32::from_euclid(to)); segment.ctrl = LineSegmentF32::new(&Point2DF32::from_euclid(ctrl0), &Point2DF32::from_euclid(ctrl1)); - segment.flags = SegmentFlags::HAS_ENDPOINTS | SegmentFlags::HAS_CONTROL_POINT_0 | - SegmentFlags::HAS_CONTROL_POINT_1; + segment.kind = SegmentKind::Cubic; return self.handle_cubic(&segment); } PathEvent::QuadraticTo(ctrl, to) => { // TODO(pcwalton): Don't degree elevate! - let mut segment = Segment::new(); + let mut segment = Segment::none(); segment.baseline = LineSegmentF32::new(&Point2DF32::from_euclid(self.last_point), &Point2DF32::from_euclid(to)); segment.ctrl = LineSegmentF32::new(&Point2DF32::from_euclid(ctrl), &Point2DF32::default()); - segment.flags = SegmentFlags::HAS_ENDPOINTS | SegmentFlags::HAS_CONTROL_POINT_0; + segment.kind = SegmentKind::Quadratic; return self.handle_cubic(&segment.to_cubic()); } PathEvent::Close => Some(PathEvent::Close), @@ -2002,10 +1975,10 @@ impl ActiveEdge { let winding = segment.baseline.y_winding(); if segment.is_line_segment() { - let line_segment = segment.as_line_segment().unwrap(); + let line_segment = segment.as_line_segment(); self.segment = match self.process_line_segment(&line_segment, built_object, tile_y) { Some(lower_part) => Segment::from_line(&lower_part), - None => Segment::new(), + None => Segment::none(), }; return; } @@ -2033,7 +2006,7 @@ impl ActiveEdge { built_object, tile_y) { Some(ref lower_part) => Segment::from_line(lower_part), - None => Segment::new(), + None => Segment::none(), }; return; } @@ -2187,44 +2160,13 @@ impl LineSegmentF32 { fn to_x(&self) -> f32 { self.0[2] } fn to_y(&self) -> f32 { self.0[3] } - fn min(&self, max: &Point2DF32) -> LineSegmentF32 { - unsafe { - let max_max = Sse41::castpd_ps(Sse41::unpacklo_pd(Sse41::castps_pd(max.0), - Sse41::castps_pd(max.0))); - LineSegmentF32(Sse41::min_ps(max_max, self.0)) - } - } - - fn clamp(&self, min: &Point2DF32, max: &Point2DF32) -> LineSegmentF32 { - unsafe { - let min_min = Sse41::castpd_ps(Sse41::unpacklo_pd(Sse41::castps_pd(min.0), - Sse41::castps_pd(min.0))); - let max_max = Sse41::castpd_ps(Sse41::unpacklo_pd(Sse41::castps_pd(max.0), - Sse41::castps_pd(max.0))); - LineSegmentF32(Sse41::min_ps(max_max, Sse41::max_ps(min_min, self.0))) - } - } - fn scale(&self, factor: f32) -> LineSegmentF32 { unsafe { LineSegmentF32(Sse41::mul_ps(self.0, Sse41::set1_ps(factor))) } } - fn floor(&self) -> LineSegmentF32 { - unsafe { - LineSegmentF32(Sse41::fastfloor_ps(self.0)) - } - } - - fn fract(&self) -> LineSegmentF32 { - unsafe { - LineSegmentF32(Sse41::sub_ps(self.0, self.floor().0)) - } - } - fn split(&self, t: f32) -> (LineSegmentF32, LineSegmentF32) { - //println!("LineSegmentF32::split(t={})", t); debug_assert!(t >= 0.0 && t <= 1.0); unsafe { let from_from = Sse41::castpd_ps(Sse41::unpacklo_pd(Sse41::castps_pd(self.0), @@ -2250,23 +2192,6 @@ impl LineSegmentF32 { } } - fn to_line_segment_u4(&self) -> LineSegmentU4 { - unsafe { - let values = Sse41::cvtps_epi32(Sse41::fastfloor_ps(self.0)); - let mask = Sse41::set1_epi32(0x0c04_0800); - let values_0213 = Sse41::shuffle_epi8(values, mask)[0] as u32; - LineSegmentU4((values_0213 | (values_0213 >> 12)) as u16) - } - } - - fn to_line_segment_u8(&self) -> LineSegmentU8 { - unsafe { - let values = Sse41::cvtps_epi32(Sse41::fastfloor_ps(self.0)); - let mask = Sse41::set1_epi32(0x0c08_0400); - LineSegmentU8(Sse41::shuffle_epi8(values, mask)[0] as u32) - } - } - fn solve_t_for_x(&self, x: f32) -> f32 { (x - self.from_x()) / (self.to_x() - self.from_x()) } @@ -2414,25 +2339,6 @@ impl Transform2DF32 { } } -// Path utilities - -const TINY_EPSILON: f32 = 0.1; - -fn cubic_segment_is_tiny(segment: &CubicBezierSegment) -> bool { - let (x0, x1) = segment.fast_bounding_range_x(); - let (y0, y1) = segment.fast_bounding_range_y(); - let (x_delta, y_delta) = (f32::abs(x0 - x1), f32::abs(y0 - y1)); - x_delta < TINY_EPSILON || y_delta < TINY_EPSILON -} - -fn quadratic_segment_is_tiny(segment: &QuadraticBezierSegment) -> bool { - let (x0, x1) = segment.fast_bounding_range_x(); - let (y0, y1) = segment.fast_bounding_range_y(); - let (x_delta, y_delta) = (f32::abs(x0 - x1), f32::abs(y0 - y1)); - x_delta < TINY_EPSILON || y_delta < TINY_EPSILON - -} - // SIMD extensions trait SimdExt: Simd { @@ -2457,12 +2363,6 @@ fn alignup_i32(a: i32, b: i32) -> i32 { (a + b - 1) / b } -fn t_is_too_close_to_zero_or_one(t: f32) -> bool { - const EPSILON: f32 = 0.001; - - t < EPSILON || t > 1.0 - EPSILON -} - // Testing #[cfg(test)]