[librsvg: 17/19] gitlab#182 - Merge branch 'parse-transform-with-cssparser'
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 17/19] gitlab#182 - Merge branch 'parse-transform-with-cssparser'
- Date: Mon, 22 Jan 2018 19:29:22 +0000 (UTC)
commit 828d222fc76078ba4cb0ef2a6d1874fba3a5b19e
Merge: 3b2b9b0 f7ac35c
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Jan 22 13:18:53 2018 -0600
gitlab#182 - Merge branch 'parse-transform-with-cssparser'
We no longer use lalrpop to parse SVG's "transform" attribute. We do
it by hand with rust-cssparser. Lalrpop currently suffers from having
to recompile its regexps on each invocation of the parser, so SVGs
with many "transform" attributes are parsed slower than they should
be.
The grammar for the "transform" attribute is very small, anyway, and
doesn't require an industrial-strength parser. Rust-cssparser is
perfectly capable of dealing with it.
https://gitlab.gnome.org/GNOME/librsvg/issues/182
Makefile.am | 2 -
rust/Cargo.lock | 275 ++++++++++----------------------------------------
rust/Cargo.toml | 7 +-
rust/build.rs | 5 -
rust/src/error.rs | 8 ++
rust/src/lib.rs | 2 -
rust/src/parsers.rs | 6 +-
rust/src/transform.rs | 202 ++++++++++++++++++++++++++++++------
8 files changed, 240 insertions(+), 267 deletions(-)
---
diff --cc Makefile.am
index fe915ab,6e03e6d..ccd4878
--- a/Makefile.am
+++ b/Makefile.am
@@@ -67,14 -68,10 +67,13 @@@ librsvg_@RSVG_API_MAJOR_VERSION@_la_SOU
RUST_SOURCES = \
rust/Cargo.toml \
- rust/build.rs \
rust/src/aspect_ratio.rs \
rust/src/bbox.rs \
+ rust/src/chars.rs \
+ rust/src/clip_path.rs \
rust/src/cnode.rs \
rust/src/color.rs \
+ rust/src/coord_units.rs \
rust/src/drawing_ctx.rs \
rust/src/error.rs \
rust/src/gradient.rs \
diff --cc rust/Cargo.lock
index bbc7b72,439daab..a9fcef5
--- a/rust/Cargo.lock
+++ b/rust/Cargo.lock
@@@ -1,42 -1,16 +1,28 @@@
- [[package]]
- name = "aho-corasick"
- version = "0.6.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
- "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- ]
-
- [[package]]
- name = "ascii-canvas"
- version = "1.0.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
- "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- ]
-
- [[package]]
- name = "atty"
- version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
++[root]
++name = "rsvg_internals"
++version = "0.0.1"
+dependencies = [
- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cssparser 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "downcast-rs 1.0.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)",
++ "itertools 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
[[package]]
- name = "bit-set"
- version = "0.4.0"
+ name = "aho-corasick"
+ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
--[[package]]
- name = "bit-vec"
- version = "0.4.4"
-name = "bitflags"
-version = "0.9.1"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--
[[package]]
name = "bitflags"
version = "1.0.1"
@@@ -53,19 -27,19 +39,19 @@@ 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.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.4.0 (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.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.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.36 (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.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@@ -121,15 -82,13 +94,18 @@@ version = "0.4.2
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
- name = "ena"
- version = "0.5.0"
+ name = "dtoa-short"
+ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+[[package]]
- name = "fixedbitset"
- version = "0.1.8"
++name = "either"
++version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
[[package]]
name = "fuchsia-zircon"
version = "0.3.3"
@@@ -146,120 -105,45 +122,48 @@@ source = "registry+https://github.com/r
[[package]]
name = "glib"
- version = "0.4.0"
-version = "0.3.1"
++version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.0.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)",
- "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "glib-sys"
-version = "0.4.0"
+version = "0.5.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)",
+ "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gobject-sys"
-version = "0.4.0"
+version = "0.5.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)",
- "glib-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.0.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.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
]
- [[package]]
- name = "itertools"
- version = "0.5.10"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
- "either 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- ]
-
[[package]]
-name = "itoa"
-version = "0.3.4"
+name = "itertools"
+version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "either 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
[[package]]
- name = "kernel32-sys"
- version = "0.2.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- ]
-
- [[package]]
- name = "lalrpop"
- version = "0.13.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
- "ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "atty 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "docopt 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ena 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "lalrpop-intern 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "lalrpop-snap 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "lalrpop-util 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "petgraph 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- ]
-
- [[package]]
- name = "lalrpop-intern"
- version = "0.13.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-
- [[package]]
- name = "lalrpop-snap"
- version = "0.13.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
- "ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "atty 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "docopt 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ena 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "lalrpop-intern 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "lalrpop-util 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "petgraph 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- ]
-
- [[package]]
- name = "lalrpop-util"
- version = "0.13.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-
- [[package]]
--name = "lazy_static"
--version = "0.2.11"
++name = "itoa"
++version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@@ -282,48 -166,9 +186,34 @@@ name = "memchr
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
]
- [[package]]
- name = "ordermap"
- version = "0.3.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-
+[[package]]
+name = "pango"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.4.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.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.5.0 (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.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.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
- [[package]]
- name = "petgraph"
- version = "0.4.11"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
- "fixedbitset 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "ordermap 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- ]
-
[[package]]
name = "phf"
version = "0.7.21"
@@@ -399,30 -244,21 +289,6 @@@ name = "regex-syntax
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
--[[package]]
--name = "rsvg_internals"
--version = "0.0.1"
--dependencies = [
- "cairo-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cssparser 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cssparser 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "downcast-rs 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "itertools 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "lalrpop 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "lalrpop-util 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
-- "regex 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
--]
-
- [[package]]
- name = "rustc-serialize"
- version = "0.3.24"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--
[[package]]
name = "siphasher"
version = "0.2.2"
@@@ -497,50 -324,29 +354,31 @@@ name = "winapi
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
- [[package]]
- name = "winapi-build"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-
[metadata]
"checksum aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" =
"d6531d44de723825aa81398a6415283229725a00fa30713812ab9323faa82fc4"
- "checksum ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"b385d69402821a1c254533a011a312531cbcc0e3e24f19bbb4747a5a2daf37e2"
- "checksum atty 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" =
"d0fd4c0631f06448cc45a6bbb3b710ebb7ff8ccb96a0800c994afe23a70d5df2"
- "checksum bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"d9bf6104718e80d7b26a68fdbacff3481cfc05df670821affc7e9cbc1884400c"
- "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.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"b3c30d3802dfb7281680d6285f2ccdaa8c2d8fee41f93805dba5c4cf50dc23cf"
"checksum c_vec 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"6237ac5a4b1e81c213c24c6437964c61e646df910a914b4ab1487b46df20bd13"
-"checksum cairo-rs 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"a9d336f1b2ff46c17475a14360de7f456707008da475c54824887e52e453ab00"
-"checksum cairo-sys-rs 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"9e8a1e2a76ac09b959788c2c30a355d693ce6f7f7d7268f6d1dd5d8c3359c521"
+"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 cssparser 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)" =
"c89e2d77451da8a55f1f2fcaf7eb86c32da9296890c6a474c7e4047f2429b2f4"
+ "checksum cssparser 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"2debe29d742180c2d5772c82fd3b024dc399b34afaf04fc7a30ed81af3dc6d67"
"checksum cssparser-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"079adec4af52bb5275eadd004292028c79eb3c5f5b4ee8086a36d4197032f6df"
- "checksum diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" =
"3c2b69f912779fbb121ceb775d74d51e915af17aaebc38d28a592843a2dd0a3a"
- "checksum docopt 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"ab32ea6e284d87987066f21a9e809a73c14720571ef34516f0890b3d355ccfd8"
"checksum downcast-rs 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"917042ca6e6c9fe735a63cd4d5d4c43c64ea8deb456fc5465d3f78df24e68d86"
+ "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" =
"09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"
+ "checksum dtoa-short 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"068d4026697c1a18f0b0bb8cfcad1b0c151b90d8edb9bf4c235ad68128920d1d"
+"checksum either 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"740178ddf48b1a9e878e6d6509a1442a2d42fd2928aae8e7a6f8a36fb01981b3"
- "checksum ena 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"cabe5a5078ac8c506d3e4430763b1ba9b609b1286913e7d08e581d1c2de9b7e5"
- "checksum fixedbitset 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" =
"85cb8fec437468d86dc7c83ca7cfc933341d561873275f22dd5eedefa63a6478"
"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 glib 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"450247060df7d52fdad31e1d66f30d967e925c9d1d26a0ae050cfe33dcd00d08"
-"checksum glib 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"d4da1d7f4bdc5c708d8ce4df1ac440dcb2f9d97d937c989032185a48aeef1d10"
-"checksum glib-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"cdd7d911c5dc610aabe37caae7d3b9d2cfe6d8f4c85ff4c062f3d6f490e75067"
-"checksum gobject-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"edc95561e538381576425264a4ddd08c65d5da218f10b2a47b4479dd147775da"
++"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 itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" =
"4833d6978da405305126af4ac88569b5d71ff758581ce5a987dbfa3755f694fc"
+"checksum itertools 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" =
"b07332223953b5051bceb67e8c4700aa65291535568e1f12408c43c4a42c0394"
- "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" =
"7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
- "checksum lalrpop 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"8ebe5a5c90d5edeecb7f62f6ebec0a3d0f6faf4759a052708348cda99fd311a0"
- "checksum lalrpop-intern 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"05410c1e4aff497bdea1ccb274ac35536fda0ee858600df36966502d4f7acbe3"
- "checksum lalrpop-snap 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"3f866ece35287f5223a1a022c5d86417c260cda2ca9c8a156af9959404ce5313"
- "checksum lalrpop-util 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"7c7743f235fc17f5f50f3b1e64a8690ee154f17f86bd68cbb78787c5b37907f7"
- "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" =
"76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
+ "checksum itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" =
"8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"
-"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" =
"76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
"checksum lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"c8f31047daa365f19be14b47c29df4f7c3b581832407daabe6ae77397619237d"
- "checksum libc 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)" =
"96264e9b293e95d25bfcbbf8a88ffd1aedc85b754eba8b7d78012f638ba220eb"
+ "checksum libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" =
"1e5d97d6708edaa407429faa671b942dc0f2727222fb6b6539bf1db936e4b121"
"checksum matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" =
"100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376"
"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" =
"796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d"
- "checksum ordermap 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" =
"690f9a54b4ad4e529b50a72d63152266dade43f072042b9cbd4788b8656bef4a"
+"checksum pango 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"3e81c404ab81ea7ea2fc2431a0a7672507b80e4b8bf4b41eac3fc83cc665104e"
+"checksum pango-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" =
"34f34a1be107fe16abb2744e0e206bee4b3b07460b5fddd3009a6aaf60bd69ab"
- "checksum petgraph 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" =
"7a7e5234c228fbfa874c86a77f685886127f82e0aef602ad1d48333fcac6ad61"
"checksum phf 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)" =
"cb325642290f28ee14d8c6201159949a872f220c62af6e110a56ea914fbe42fc"
"checksum phf_codegen 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)" =
"d62594c0bb54c464f633175d502038177e90309daf2e0158be42ed5f023ce88f"
"checksum phf_generator 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)" =
"6b07ffcc532ccc85e3afc45865469bf5d9e4ef5bfcf9622e3cfe80c2d275ec03"
diff --cc rust/Cargo.toml
index b608983,f33a50a..9ae34a7
--- a/rust/Cargo.toml
+++ b/rust/Cargo.toml
@@@ -5,17 -5,15 +5,15 @@@ authors = ["Federico Mena Quintero <fed
[dependencies]
libc = "0.2"
-bitflags = "^0.9.1"
-#glib = "^0.1.3"
-#glib-sys = "^0.3.4"
downcast-rs = "^1.0.0"
regex = "^0.2.1"
- lalrpop-util = "0.13.1"
- cssparser = "^0.18.2"
+itertools = "0.7.4"
+pango = "0.3.0"
+pango-sys = "0.5.0"
+ cssparser = "^0.22.1"
[dependencies.cairo-sys-rs]
-version = "0.4.0"
+version = "0.5.0"
#git = "https://github.com/gtk-rs/cairo.git"
#branch = "master"
#git = "https://github.com/federicomenaquintero/cairo.git"
diff --cc rust/src/parsers.rs
index 49e43a5,17f4557..61c6c11
--- a/rust/src/parsers.rs
+++ b/rust/src/parsers.rs
@@@ -84,17 -84,17 +84,17 @@@ pub fn number_optional_number (s: &str
let mut input = ParserInput::new (s);
let mut parser = Parser::new (&mut input);
- let x = parser.expect_number ()? as f64;
+ let x = f64::from(parser.expect_number ()?);
if !parser.is_exhausted () {
- let position = parser.position ();
+ let state = parser.state ();
match *parser.next ()? {
Token::Comma => {},
- _ => parser.reset (position)
+ _ => parser.reset (&state)
};
- let y = parser.expect_number ()? as f64;
+ let y = f64::from(parser.expect_number ()?);
parser.expect_exhausted ()?;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]