88 Commits

Author SHA1 Message Date
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
d88ac86bd1 consolidate builtin imports 2020-05-18 17:50:52 -04:00
ConnorSkees
1fb6822259 rename register to declare 2020-05-16 18:01:06 -04:00
ConnorSkees
a3604491e9 consolidate implementations of hsl and hsla 2020-05-16 17:49:30 -04:00
ConnorSkees
b5a0931e45 consolidate implementations of rgb and rgba 2020-05-16 17:45:04 -04:00
ConnorSkees
0aed492123 move builtin fns to outer scope to reduce nesting 2020-04-30 19:36:34 -04:00
ConnorSkees
170759239a simplify declaration of rgb fns 2020-04-30 19:04:32 -04:00
ConnorSkees
4cfa29c971 simplify declaration of other color fns 2020-04-30 18:59:27 -04:00
ConnorSkees
11e0d523b2 simplify declaration of opacity fns 2020-04-30 18:54:29 -04:00
ConnorSkees
3e8b83d8ad simplify declaration of hsl fns 2020-04-30 18:51:10 -04:00
ConnorSkees
2eef3e9f6a store &'static str rather than String for builtin fn names 2020-04-30 15:00:57 -04:00
ConnorSkees
680790c49a replace max_args! macro with builtin method 2020-04-22 06:17:52 -04:00
ConnorSkees
33ccabce7b box color in value 2020-04-21 18:54:19 -04:00
ConnorSkees
25e6151aa9 remove workaround for compiler regression 2020-04-21 18:28:46 -04:00
ConnorSkees
de78c1147a manually resolve some formatting issues 2020-04-17 13:06:54 -04:00
ConnorSkees
62f9f7da4f integrate error handling with codemap 2020-04-12 19:37:12 -04:00
ConnorSkees
0ddabb5afd hsl/hsla 4 args special functions 2020-04-07 00:04:19 -04:00
ConnorSkees
6b817dcb24 hsl/hsla 3 args special functions 2020-04-06 23:38:17 -04:00
ConnorSkees
b17420e00b dont emit comma on one arg two channels special 2020-04-06 22:38:55 -04:00
ConnorSkees
203200ca4c emit rgba inside rgba for two args special 2020-04-06 22:35:07 -04:00
ConnorSkees
b545c162f5 two arg special function rgb/rgba 2020-04-06 22:33:12 -04:00
ConnorSkees
c95c69be4d avoid unwrapping in special functions rgb/rgba one arg green 2020-04-06 22:26:43 -04:00
ConnorSkees
65ba25e555 handle special functions in 1 arg rgb/rgba 2020-04-06 22:09:36 -04:00
ConnorSkees
b5a0957aa7 handle special functions in 3args rgba 2020-04-06 21:58:47 -04:00
ConnorSkees
97425665f9 consolidate implementation of rgb and rgba 2020-04-06 21:22:03 -04:00
ConnorSkees
b7be1705a2 args and default values are lazily evaluated 2020-04-04 18:17:04 -04:00
ConnorSkees
81c85a6f86 handle builtin functions in get-function 2020-04-03 23:49:44 -04:00
ConnorSkees
8e3e23c6cd builtin functions take args by value 2020-04-02 13:45:14 -04:00
ConnorSkees
f9fc0ed8cb differentiate named and positional args 2020-04-02 12:28:28 -04:00
ConnorSkees
981bf27cb8 properly parse and emit bracketed lists 2020-03-23 19:56:24 -04:00
ConnorSkees
795c8bdb05 error messages end in periods 2020-03-23 12:53:55 -04:00
ConnorSkees
01c1cf3bb3 prefer the word lightness over luminance 2020-03-23 12:52:23 -04:00
ConnorSkees
2698e8257b improve rgb(a)/hsl(a) 1 arg errors 2020-03-23 12:42:58 -04:00
ConnorSkees
6460c97ef4 better error messages for zero arg hsl(a) 2020-03-22 23:41:02 -04:00
ConnorSkees
6aae433d21 better error message for missing rgb/rgba args 2020-03-22 23:28:19 -04:00
ConnorSkees
0be8828bf0 make better use of num traits 2020-03-22 22:28:54 -04:00
ConnorSkees
22ab800e4c remove todo! from other color functions 2020-03-21 00:10:15 -04:00
ConnorSkees
20f702b40b Implement 1 arg for hsl and hsla 2020-03-19 23:44:53 -04:00
ConnorSkees
fb4021dae6 Properly handle percents in 1 arg rgb/rgba 2020-03-19 22:31:44 -04:00
ConnorSkees
dcb712e3d4 Refactor unit conversions into separate file 2020-03-19 16:24:31 -04:00
ConnorSkees
7a5b5c7369 Workaround negative numbers in macro 2020-03-16 16:44:52 -04:00
ConnorSkees
849f3d8479 Refactor color-other builtin function arg macros 2020-03-16 10:52:42 -04:00
ConnorSkees
51585235c3 Remove decl! macro
This lets rustfmt work and gives better autocomplete and error messages
inside builtin functions.
2020-03-16 10:35:38 -04:00
ConnorSkees
d8db937470 reorder macro params 2020-03-10 21:53:21 -04:00
ConnorSkees
276134eb93 prefer hashmap over btreemap where ordering is unimportant 2020-03-03 19:51:02 -05:00
ConnorSkees
33d486ccde Properly handle hsl value in color::other functions 2020-02-17 08:16:04 -05:00
ConnorSkees
f550d820b0 change-color() hue error message 2020-02-16 22:49:19 -05:00
ConnorSkees
4040e3ad1c sat and lum in change color are scale: 2020-02-16 22:46:27 -05:00