Merge rewrite deck serialization, timeline cache, add algo timelines #712

William Casarin (19):
      algos: introduce last_n_per_pubkey_from_tags
      wip algo timelines
      Initial token parser combinator
      token_parser: unify parsing and serialization
      token_serializer: introduce TokenWriter
      token_parser: simplify AddColumnRoute serialization
      tokens: add a more advanced tokens parser
      tokens: add AccountsRoute token serializer
      tokens: add PubkeySource and ListKinds token serializer
      tokens: add TimelineRoute token serializer
      tokens: initial Route token serializer
      add tokenator crate
      note_id: add hex helpers for root notes
      tokens: add token serialization for AlgoTimeline
      tokens: add token serialization for TimelineKind
      tokens: switch over to using token serialization
      Switch to unified timeline cache via TimelineKinds
      hashtags: click hashtags to open them
This commit is contained in:
William Casarin
2025-02-05 18:45:22 -08:00
46 changed files with 2256 additions and 2309 deletions

View File

@@ -183,21 +183,20 @@ mod tests {
.column(0)
.router()
.top()
.timeline_id();
.timeline_id()
.unwrap();
let tl2 = app
.columns(app_ctx.accounts)
.column(1)
.router()
.top()
.timeline_id();
.timeline_id()
.unwrap();
assert_eq!(tl1.is_some(), true);
assert_eq!(tl2.is_some(), true);
let timelines = app.columns(app_ctx.accounts).timelines();
assert!(timelines[0].kind.is_notifications());
assert!(timelines[1].kind.is_contacts());
let timelines = app.timeline_cache.timelines.len() == 2;
assert!(app.timeline_cache.timelines.get(&tl1).is_some());
assert!(app.timeline_cache.timelines.get(&tl2).is_some());
rmrf(tmpdir);
}