···4848 keys_at: Vec<OpKey>, // expected to ~always be length one
4949}
50505151+// ok so this is silly.
5252+//
5353+// i think i had some idea that deferring parsing to later steps would make it
5454+// easier to do things like sometimes not parsing at all (where the output is
5555+// also json lines), and maybe avoid some memory shuffling.
5656+// but since the input already has to be split into lines, keeping them as line
5757+// strings is probably the worst option: space-inefficient, allows garbage, and
5858+// leads to, well, this impl.
5959+//
6060+// it almost could have been slick if the *original* was just reused, and the
6161+// parsed ops were just kind of on the side referencing into it, but i'm lazy
6262+// and didn't get it there.
6363+//
6464+// should unrefactor to make Op own its data again, parse (and deal with errors)
6565+// upfront, and probably greatly simplify everything downstream. simple.
5166impl PageBoundaryState {
5267 fn new(page: &mut ExportPage) -> Option<Self> {
5368 // grab the very last op