Commit graph

13 commits

Author SHA1 Message Date
Jonathan Kelley
73047fe956 feat: props memoization is more powerful
This commit solves the memoization , properly memoizing properties that don't have any generic parameters. This is a rough heuristic to prevent non-static lifetimes from creeping into props and breaking our minual lifetime management.

Props that have a generic parameter are opted-out of the `partialeq` requirement and props *without* lifetimes must implement partialeq. We're going to leave manual disabling of memoization for future work.
2021-06-22 17:20:54 -04:00
Jonathan Kelley
47e896038e wip: more work on updating syntad 2021-06-15 10:02:46 -04:00
Jonathan Kelley
508c560320 Feat: massive changes to definition of components
This change switches back to the original `ctx<props>` syntax for
commponents. This lets lifetime elision to remove the need to match
exactly which lifetime (props or ctx) gets  carried to the output. As
such, `Props` is currently required to be static. It *is* possible to
loosen this restriction, and will be done in the future, though only
through adding metadata about the props through the Props derive
macro. Implementing the IS_STATIC trait is unsafe, so the derive macro
will do it through some heuristics.

For now, this unlocks sharing vnodes from parents to children, enabling
pass-thru components, fragments, portals, etc.
2021-06-01 18:33:15 -04:00
Jonathan Kelley
5ad81885e4 wip: staticify? 2021-03-11 12:27:01 -05:00
Jonathan Kelley
cf16090838 Feat: add context to builder 2021-03-03 23:06:11 -05:00
Jonathan Kelley
c8bb392cad Feat: view -> render 2021-02-28 21:21:17 -05:00
Jonathan Kelley
3b30fa61b8 Feat: a few bugs, but the event system works! 2021-02-28 03:08:08 -05:00
Jonathan Kelley
a8b1225c48 Feat: begin WIP on html macro 2021-02-26 12:58:03 -05:00
Jonathan Kelley
4d01455729 Feat: update websys with lifecycle 2021-02-24 02:22:05 -05:00
Jonathan Kelley
edf09c1892 Feat: add css example 2021-02-23 15:08:23 -05:00
Jonathan Kelley
e3ede7fcbf Feat: re-enable stack machine approach 2021-02-17 10:53:55 -05:00
Jonathan Kelley
f22ff83190 Feat: WIP on deserialize 2021-02-15 14:14:28 -05:00
Jonathan Kelley
8439994859 Feat: web example + cli writes to browser screen! 2021-02-15 00:17:40 -05:00