~/bend-docscommunity

main.bend source

main.bend on the hub · documented module

import Basetype Builder is Data:  Empty{}  Chunk{text: String}  Join{left: Builder, right: Builder}def empty() -> Builder:  Empty{}def fragment(text: String) -> Builder:  Chunk{text}def compose(left: Builder, right: Builder) -> Builder:  Join{left, right}def append(builder: Builder, text: String) -> Builder:  Join{builder, Chunk{text}}def character(builder: Builder, char: Char) -> Builder:  Join{builder, Chunk{SCon{char, SNil{}}}}# Internal suffix traversal. Copies each fragment exactly once.def emit(builder: Builder, suffix: String) -> String:  match builder:    case Empty{}:      suffix    case Chunk{text}:      String.append(text, suffix)    case Join{left, right}:      emit(left, emit(right, suffix))def finish(builder: Builder) -> String:  emit(builder, SNil{})