Commit graph

98 commits

Author SHA1 Message Date
Chris Wong
e98d340825 Pre-allocate a buffer of (roughly) the right size
Closes 
2016-10-02 17:48:01 +13:00
Chris Wong
c05bb02d97 Remove call expressions 2016-09-23 19:36:42 +12:00
Chris Wong
f12efe4299 Rewrite everything to use Strings instead of writers
After fiddling around with zero-allocation solutions, I concluded that
all non-allocating approaches are too annoying to work with in realistic
code. Using closures leads to yak-shaving with lifetimes; and because
Iron needs to take ownership of the response body we often end up
cloning the input data anyway.

Removing this constraint has let me simplify the entire system, removing
a net 300 lines from the library. The `html!` macro no longer takes a
writer, and instead returns a `PreEscaped<String>`. This means that the
result of an `html!` can be spliced directly into another `html!`,
removing the need for the `impl Template` rigmarole.

To rub it in, benchmarks show the new code is in fact *faster* than it
was before. How lovely.
2016-09-23 19:22:22 +12:00
Chris Wong
7045191c19 Add the "call" keyword back in
This change should make the syntax look a bit less mysterious
2016-09-02 23:23:39 +12:00
Chris Wong
58650b0dd0 Remove dead code 2016-09-01 17:52:51 +12:00
Chris Wong
ed9228fa93 Require parentheses around calls
This simplifies the parser quite a bit
2016-08-22 21:53:23 +12:00
Chris Wong
97a71d7bc3 Require that all literal strings are quoted
Unquoted literals are confusing, annoying to implement, and rarely used.
We're better off without them.
2016-08-18 22:31:12 +12:00
Chris Wong
6a6b23d8ae Switch to new splice syntax using parentheses
Closes 
2016-08-18 22:12:14 +12:00
Chris Wong
61791a6aef @call yay -> @yay 2016-08-15 20:46:04 +12:00
Chris Wong
d2bf70da9a Allow names with multiple hyphens in a row
Fixes 
2016-08-07 20:39:31 +12:00
Chris Wong
4d66646ece Don't allow namespaces in class and ID names 2016-07-21 21:19:38 +12:00
msifeed
36a88bd74f Move ident parsing to separate method 2016-07-19 14:57:05 +03:00
msifeed
e222f5385d Fixed minuses in namespaces 2016-07-18 14:40:45 +03:00
msifeed
bad49d49c0 Add namespace support for element and attribute names 2016-07-18 13:07:58 +03:00
Chris Wong
3fab6b4637 Update Rust 2016-07-10 20:02:03 +12:00
Chris Wong
166296db30 Update Rust 2016-07-03 16:55:45 +12:00
Chris Wong
ca74f0eda0 Update Rust 2016-06-12 15:05:49 +12:00
Chris Wong
92ba854773 Implement ID shorthand
Closes 
2016-06-03 23:06:39 +12:00
Chris Wong
00ec443326 Update Rust
2016-04-27 12:10:37 +12:00
Chris Wong
8492259638 Use the new ? syntax (so purty) 2016-03-22 23:31:23 +13:00
Chris Wong
ab0ef991b9 Minor refactoring (thanks Clippy) 2016-03-06 18:25:21 +13:00
Chris Wong
1a9080815c Update Rust
See 
2016-02-14 20:12:04 +11:00
Chris Wong
4e7bd32c12 Update Rust
See 
2016-02-13 13:51:20 +11:00
Wim Looman
1d23d5f4c1 #match -> @match for errors 2016-02-10 11:47:22 +01:00
Wim Looman
b254d7fbc4 Add support for a match keyword 2016-02-09 19:44:54 +01:00
Chris Wong
f113623657 Merge pull request from Nemo157/change-symbology
Change symbology
2016-02-08 23:38:23 +11:00
Wim Looman
1b307449f3 Add @ prefix on else back in 2016-02-07 11:02:33 +01:00
Wim Looman
da86d54b05 Remove div shorthand 2016-02-07 10:59:20 +01:00
Wim Looman
393873904e Fix up comments and error messages 2016-02-03 12:01:32 +01:00
Wim Looman
bd0b135a0d Replace # -> @ and remove from else 2016-02-03 12:01:31 +01:00
Wim Looman
359079ca6c Use join 2016-02-02 16:20:11 +01:00
Wim Looman
b1680636cf Add a shorthand syntax to define element classes 2016-02-02 16:20:11 +01:00
Wim Looman
6c8fbb5bad Change splice operator and add in render by-move 2016-02-02 15:56:59 +01:00
Chris Wong
0440f5c74f Merge pull request from Nemo157/path-in-splice
Allow path lookups in un-delimited splices
2016-02-02 21:30:48 +11:00
Wim Looman
6b0b7a00d7 Allow path lookups in un-delimited splices 2016-02-01 18:18:10 +01:00
Wim Looman
6858108f9c Allow tuple attribute lookups 2016-02-01 18:03:50 +01:00
Chris Wong
8d0ad20f74 Update Rust 2016-01-01 11:43:59 +13:00
Chris Wong
3791f801c9 Update Rust 2015-12-20 22:18:44 +11:00
Chris Wong
54889b2004 Update Rust 2015-11-20 10:56:29 +13:00
Chris Wong
05b5d099fb Update Rust 2015-11-08 18:59:11 +13:00
Chris Wong
34f14dd41d Don't choke on SubstNt tokens
Closes 
2015-11-05 21:46:43 +13:00
Chris Wong
2e0aa3e433 Replace $$ syntax with a general trait thing 2015-10-06 19:25:29 +13:00
Chris Wong
f82c74a699 Refactor 2015-09-28 21:40:37 +13:00
Chris Wong
aa5c8862bc Update Rust 2015-09-28 20:16:23 +13:00
Chris Wong
cf0cf095c2 Revert "Add #call_box instruction"
This reverts commit 0311bab45b.
2015-09-26 13:56:52 +12:00
Chris Wong
0311bab45b Add #call_box instruction 2015-09-24 11:50:33 +12:00
Chris Wong
7d124e616e Add #call instruction 2015-09-23 14:29:45 +12:00
Chris Wong
b50a3be6f6 Handle hyphens in attribute and element names
Closes 
2015-09-15 17:51:27 +12:00
Chris Wong
059b82e091 DON'T PANIC
Closes 
2015-09-15 13:38:32 +12:00
Chris Wong
aee18ee06f Clean up parser a bit 2015-09-14 22:16:01 +12:00