def pascal
import bend-lint-rules@0.2.0.0/layout/case.bend as Caseimport Base
127# `s` in PascalCase: `_` goes, and the character after it becomes a capital.
128def pascal(s: String, up: Bool, acc: String) -> String:
129 match s up:
130 case SNil{} _:
131 String.reverse(acc)
132 case SCon{'_', rest} _:
133 pascal(rest, True{}, acc)
134 case SCon{c, rest} True{}:
135 pascal(rest, False{}, SCon{Char.to_upper(c), acc})
136 case SCon{c, rest} False{}:
137 pascal(rest, False{}, SCon{c, acc})