Server tools to backfill, tail, mirror, and verify PLC logs

why that code is like that

+15
+15
src/poll.rs
··· 48 keys_at: Vec<OpKey>, // expected to ~always be length one 49 } 50 51 impl PageBoundaryState { 52 fn new(page: &mut ExportPage) -> Option<Self> { 53 // grab the very last op
··· 48 keys_at: Vec<OpKey>, // expected to ~always be length one 49 } 50 51 + // ok so this is silly. 52 + // 53 + // i think i had some idea that deferring parsing to later steps would make it 54 + // easier to do things like sometimes not parsing at all (where the output is 55 + // also json lines), and maybe avoid some memory shuffling. 56 + // but since the input already has to be split into lines, keeping them as line 57 + // strings is probably the worst option: space-inefficient, allows garbage, and 58 + // leads to, well, this impl. 59 + // 60 + // it almost could have been slick if the *original* was just reused, and the 61 + // parsed ops were just kind of on the side referencing into it, but i'm lazy 62 + // and didn't get it there. 63 + // 64 + // should unrefactor to make Op own its data again, parse (and deal with errors) 65 + // upfront, and probably greatly simplify everything downstream. simple. 66 impl PageBoundaryState { 67 fn new(page: &mut ExportPage) -> Option<Self> { 68 // grab the very last op