14 Commits

Author SHA1 Message Date
ConnorSkees
6d76e1518a refactor away many unwraps 2020-05-25 00:57:59 -04:00
ConnorSkees
e5cceb60ec track span_before when parsing values
this allows us to remove many panics on invalid input
2020-05-24 15:30:06 -04:00
ConnorSkees
283a2097ff rename Value::Ident to Value::String 2020-05-22 14:35:41 -04:00
ConnorSkees
969726eb30 Revert string interning
There existed issues related to multithreaded tests that are difficult
to resolve. In the future interning may be reimplemented but in a more
limited capacity.

The motivation behind interning *values* was that it appeared checking
for named colors was responsible for much of the time lost when parsing
unquoted strings. If interning were to be reimplemented, it may make
sense to limit it solely to identifiers and style properties.
2020-05-22 14:20:31 -04:00
ConnorSkees
9a6c8ce019 add string interning
this seems to improve performance by ~20% as well as significantly
decrease memory usage
2020-05-21 22:46:40 -04:00
ConnorSkees
e5226e5cfe eat_calc_args doesn't allocate its own string 2020-05-06 12:15:42 -04:00
ConnorSkees
26df276266 Value::to_css_string returns a Cow<'static, str> 2020-05-05 11:08:34 -04:00
ConnorSkees
a5cd335318 properly handle whitespace and start and end of url() 2020-04-24 19:00:06 -04:00
ConnorSkees
a86d717f26 properly parse variable flags 2020-04-23 21:30:25 -04:00
ConnorSkees
fc3facb80c properly handle url() 2020-04-21 04:20:35 -04:00
ConnorSkees
4cdcf4f0d4 use peekmore rather than std::iter::Peekable 2020-04-20 03:45:28 -04:00
ConnorSkees
62f9f7da4f integrate error handling with codemap 2020-04-12 19:37:12 -04:00
ConnorSkees
97425665f9 consolidate implementation of rgb and rgba 2020-04-06 21:22:03 -04:00
ConnorSkees
7e793392a7 handle special functions calc, element, expression, and progid 2020-04-06 19:26:47 -04:00