Equations
- instCoeStringSubstring_batteries = { coe := String.toSubstring }
Returns the longest common prefix of two substrings.
The returned substring will use the same underlying string as s
.
Equations
- s.commonPrefix t = { str := s.str, startPos := s.startPos, stopPos := Substring.commonPrefix.loop s t s.startPos t.startPos }
Instances For
Returns the ending position of the common prefix, working up from spos, tpos
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Returns the longest common suffix of two substrings.
The returned substring will use the same underlying string as s
.
Equations
- s.commonSuffix t = { str := s.str, startPos := Substring.commonSuffix.loop s t s.stopPos t.stopPos, stopPos := s.stopPos }
Instances For
Returns the starting position of the common prefix, working down from spos, tpos
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If pre
is a prefix of s
, i.e. s = pre ++ t
, returns the remainder t
.
Equations
Instances For
If suff
is a suffix of s
, i.e. s = t ++ suff
, returns the remainder t
.
Equations
Instances For
s.stripPrefix pre
will remove pre
from the beginning of s
if it occurs there,
or otherwise return s
.
Equations
- s.stripPrefix pre = (Option.map Substring.toString (s.dropPrefix? pre)).getD s
Instances For
s.stripSuffix suff
will remove suff
from the end of s
if it occurs there,
or otherwise return s
.
Equations
- s.stripSuffix suff = (Option.map Substring.toString (s.dropSuffix? suff)).getD s
Instances For
Convert a string of assumed-ASCII characters into a byte array. (If any characters are non-ASCII they will be reduced modulo 256.)
Note: if you just need the underlying ByteArray
of a non-ASCII string,
use String.toUTF8
.
Equations
- s.toAsciiByteArray = String.toAsciiByteArray.loop s 0 ByteArray.empty
Instances For
Internal implementation of toAsciiByteArray
.
loop p out = out ++ toAsciiByteArray ({ s with startPos := p } : Substring)
Equations
- String.toAsciiByteArray.loop s p out = if h : s.atEnd p = true then out else let c := s.get p; let_fun this := ⋯; String.toAsciiByteArray.loop s (s.next p) (out.push c.toUInt8)