╭ changed ────────────╮ │src/ui/Home/Users.zig│ ╰─────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────╮ │12 │ │13 pub const page_size = 20; // how many users one window shows │ │14 │ │15 -users: []const evt.User.Safe, │ │15 +users: []const evt.User.Public, │ │16 start: usize, // the window start this page was built with, mirrored into the url │ │17 next_start: ?usize, // the `start` for the "next" row, or null when this is the last window│ │18 │ ╰───────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────╮ │26 const DB = evt.AdminDB; │ │27 const hash_kind = evt.admin_repo_opts.hash; │ │28 │ │29 - var users: std.ArrayList(evt.User.Safe) = .empty; │ │29 + var users: std.ArrayList(evt.User.Public) = .empty; │ │30 │ │31 // the users ordered by creation time (newest first); absent until the first │ │32 // user exists. keyed by orderKey ([timestamp][event-id]); the trailing bytes│ ╰─────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │53 const event_id = order_key[@sizeOf(u64)..]; │ │54 const user_cursor = try event_id_to_user.getCursor(hash.hashInt(hash_kind, event_id)) orelse continue;│ │55 const user_map = try DB.HashMap(.read_only).init(user_cursor); │ │56 - const user_event = try evt.read(evt.User, DB, hash_kind, arena, user_map); │ │57 - try users.append(arena.allocator(), evt.User.Safe.init(user_event)); │ │56 + const user_event = try evt.read(evt.User.Record, DB, hash_kind, arena, user_map); │ │57 + try users.append(arena.allocator(), evt.project(evt.User.Public, user_event.event)); │ │58 } │ │59 │ │60 return .{ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯