token_serializer: introduce TokenWriter

This simplifies token serialization

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin
2025-01-05 11:50:08 -06:00
parent 61b3a92792
commit 4f89d95aef
3 changed files with 41 additions and 9 deletions

View File

@@ -11,7 +11,7 @@ use nostrdb::{Ndb, Transaction};
use crate::{
login_manager::AcquireKeyState,
route::Route,
storage::{ParseError, TokenParser, TokenSerializable},
storage::{ParseError, TokenParser, TokenSerializable, TokenWriter},
timeline::{kind::ListKind, PubkeySource, Timeline, TimelineKind},
ui::anim::ICON_EXPANSION_MULTIPLE,
Damus,
@@ -111,14 +111,10 @@ impl AddColumnRoute {
}
impl TokenSerializable for AddColumnRoute {
fn serialize(
&self,
write_token: fn(&str) -> Result<(), std::io::Error>,
) -> Result<(), std::io::Error> {
fn serialize(&self, writer: &mut TokenWriter) {
for token in self.tokens() {
write_token(token)?;
writer.write_token(token);
}
Ok(())
}
fn parse<'a>(parser: &mut TokenParser<'a>) -> Result<Self, ParseError<'a>> {