Pull.Mode: type of emerging-ezjson@1.3.0.0 Import: import emerging-ezjson@1.3.0.0/src/pull.bend as Pull Lines 79-106 of emerging-ezjson@1.3.0.0/src/pull.bend: https://jend.leeeet.dev/read.txt?path=emerging-ezjson@1.3.0.0/src/pull.bend&start_line=79&end_line=106 import Base import emerging-ezjson@1.3.0.0/src/value.bend as V # what the scanner is inside. Skip-modes (`MSk*`) walk a string they will # not keep, so a dropped value does not build its text type Mode is Data: MIdle{} # a bare word's characters, reversed, so the unread array is not kept MWord{buf: List<&2, Char>, nn: U32, num: V.Num} MSpan{cut: String, nn: U32} MCopy{buf: List<&2, Char>} MEsc{buf: List<&2, Char>} MUni{left: Nat, acc: U32, buf: List<&2, Char>} MHi{hi: U32, buf: List<&2, Char>} MHiEsc{hi: U32, buf: List<&2, Char>} MLo{left: Nat, acc: U32, hi: U32, buf: List<&2, Char>} MSkStr{} MSkEsc{} MSkUni{left: Nat, acc: U32} MSkHi{hi: U32} MSkHiEsc{hi: U32} MSkLo{left: Nat, acc: U32, hi: U32} MDone{stop: Stop, saved: String} # the cursor rest is the suffix the stepper is already on, so closing a # long string does not keep that suffix a second time MRest{stop: Stop} # the quote is consumed; the next character is the first of the string MQuote{} # resume `mode` on `rest` after a plain word, which the stepper did not # walk byte by byte MJump{rest: String, mode: Mode} Uses (7): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Char https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=emerging-ezjson@1.3.0.0/src/pull.bend&name=Stop https://jend.leeeet.dev/definition.txt?path=emerging-ezjson@1.3.0.0/src/value.bend&name=Num