···48 keys_at: Vec<OpKey>, // expected to ~always be length one
49}
5000000000000000051impl 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}
5051+// 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.
66impl PageBoundaryState {
67 fn new(page: &mut ExportPage) -> Option<Self> {
68 // grab the very last op