ae.utils.text

Utility code related to string and text processing.

Modules

ascii
module ae.utils.text.ascii

Simple (ASCII-only) text-processing functions, for speed and CTFE.

html
module ae.utils.text.html

ae.utils.text.html

parsefp
module ae.utils.text.parsefp

Pure D code to parse floating-point values. Adapted to nothrow/@nogc from std.conv.

Members

Aliases

CIAsciiString
alias CIAsciiString = NormalizedArray!(immutable(char), s => s.byCodeUnit.map!(std.ascii.toLower))

Case-insensitive ASCII string.

CIUniString
alias CIUniString = NormalizedArray!(immutable(char), s => s.map!(std.uni.toLower))

Case-insensitive Unicode string.

doubleToString
alias doubleToString = fpToString!double
Undocumented in source.
indexOf
alias indexOf = std.string.indexOf
Undocumented in source.
toLowerHex
alias toLowerHex = toHex!lowerHexDigits
Undocumented in source.

Enums

fpCFormatString
eponymoustemplate fpCFormatString(T)
Undocumented in source.
fpFormatString
eponymoustemplate fpFormatString(T)

Format string for a FP type which includes all necessary significant digits

significantDigits
eponymoustemplate significantDigits(T : real)

How many significant decimal digits does a FP type have (determined empirically - valid for all D FP types on x86/64)

Functions

UTF8ToRaw
ascii UTF8ToRaw(char[] r)

Undo rawToUTF8.

arrayFromHex
ubyte[] arrayFromHex(char[] hex)
Undocumented in source. Be warned that the author may not have intended to support it.
arrayFromHex
void arrayFromHex(char[] hex, ubyte[] buf)
Undocumented in source. Be warned that the author may not have intended to support it.
asciiSplit
T[][] asciiSplit(T[] text)

Like std.string.split (one argument version, which splits by whitespace), but only splits by ASCII and does not autodecode.

asciiStrip
T[] asciiStrip(T[] s)
Undocumented in source. Be warned that the author may not have intended to support it.
camelCaseJoin
string camelCaseJoin(string[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
contains (from ae.utils.array)
bool contains(T[] str, U[] what) via public import ae.utils.array : contains;

Ditto, for substrings

eatLine
T[] eatLine(T[] s, bool eatIncompleteLines)

Consume a LF or CRLF terminated line from s. Sets s to null and returns the remainder if there is no line terminator in s.

fastReplace
T[] fastReplace(T[] what, T[] from, T[] to)
Undocumented in source. Be warned that the author may not have intended to support it.
fastSplit
T[][] fastSplit(T[] s, U d)
Undocumented in source. Be warned that the author may not have intended to support it.
findBestMatch
sizediff_t findBestMatch(string[] items, string target, float threshold)

Select best match from a list of items. Returns -1 if none are above the threshold.

forceValidUTF8
string forceValidUTF8(string s)
Undocumented in source. Be warned that the author may not have intended to support it.
formatAs
string formatAs(T obj, string fmt)

CTFE helper

formatted
auto formatted(T values)

Lazily formatted object

fpAsString
FPAsString!T fpAsString(T f)
Undocumented in source. Be warned that the author may not have intended to support it.
fromHex
T fromHex(const(C)[] s)
Undocumented in source. Be warned that the author may not have intended to support it.
fromZArray
C[] fromZArray(C[n] arr)
C[] fromZArray(C[] arr)

Return the slice up to the first NUL character, or of the whole array if none is found.

hexDump
string hexDump(const(void)[] b)

Formats binary data as a hex dump (three-column layout consisting of hex offset, byte values in hex, and printable low-ASCII characters).

newlinesToSpaces
T[] newlinesToSpaces(T[] s)
Undocumented in source. Be warned that the author may not have intended to support it.
normalizeWhitespace
ascii normalizeWhitespace(ascii s)
Undocumented in source. Be warned that the author may not have intended to support it.
nullStringTransform
string nullStringTransform(char[] s)

Where a delegate with this signature is required.

numberToString
string numberToString(T v)
Undocumented in source. Be warned that the author may not have intended to support it.
parseHexDigit
ubyte parseHexDigit(char c)
Undocumented in source. Be warned that the author may not have intended to support it.
putFP
void putFP(Writer writer, F v)
Undocumented in source. Be warned that the author may not have intended to support it.
randomString
string randomString(int length, string chars)
Undocumented in source. Be warned that the author may not have intended to support it.
rawToUTF8
string rawToUTF8(char[] s)

Convert any data to a valid UTF-8 bytestream, so D's string functions can properly work on it.

sarrayFromHex
void sarrayFromHex(Hex hex, ubyte[N] buf)

Fast version for static arrays of known length.

segmentByWhitespace
T[][] segmentByWhitespace(T[] s)

Covering slice-list of s with interleaved whitespace.

selectBestFrom
string selectBestFrom(string[] items, string target, float threshold)

Select best match from a list of items. Returns null if none are above the threshold.

splitAsciiLines
T[][] splitAsciiLines(T[] text)
Undocumented in source. Be warned that the author may not have intended to support it.
splitByCamelCase
string[] splitByCamelCase(string s)
Undocumented in source. Be warned that the author may not have intended to support it.
stringDistance
int stringDistance(string s, string t)

Simpler implementation of Levenshtein string distance

stringSimilarity
float stringSimilarity(string string1, string string2)

Return a number between 0.0 and 1.0 indicating how similar two strings are (1.0 if identical)

toHex
void toHex(T n, char[U] buf)
Undocumented in source. Be warned that the author may not have intended to support it.
toHex
char[T.sizeof * 2] toHex(T n)
Undocumented in source. Be warned that the author may not have intended to support it.
verbatimWrap
string verbatimWrap(string s, size_t columns, string firstIndent, string indent, size_t tabWidth)

Like std.string.wrap, but preserves whitespace at line start and between (non-wrapped) words.

Imports

DecimalSize (from ae.utils.text.ascii)
public import ae.utils.text.ascii : ascii, DecimalSize, toDec, toDecFixed, asciiToLower, asciiToUpper;
Undocumented in source.
ascii (from ae.utils.text.ascii)
public import ae.utils.text.ascii : ascii, DecimalSize, toDec, toDecFixed, asciiToLower, asciiToUpper;
Undocumented in source.
asciiToLower (from ae.utils.text.ascii)
public import ae.utils.text.ascii : ascii, DecimalSize, toDec, toDecFixed, asciiToLower, asciiToUpper;
Undocumented in source.
asciiToUpper (from ae.utils.text.ascii)
public import ae.utils.text.ascii : ascii, DecimalSize, toDec, toDecFixed, asciiToLower, asciiToUpper;
Undocumented in source.
toDec (from ae.utils.text.ascii)
public import ae.utils.text.ascii : ascii, DecimalSize, toDec, toDecFixed, asciiToLower, asciiToUpper;
Undocumented in source.
toDecFixed (from ae.utils.text.ascii)
public import ae.utils.text.ascii : ascii, DecimalSize, toDec, toDecFixed, asciiToLower, asciiToUpper;
Undocumented in source.

Structs

FPAsString
struct FPAsString(T)

Wraps the result of a fpToString in a non-allocating stringifiable struct.

HexParseConfig
struct HexParseConfig
Undocumented in source.

Templates

cWidthString
template cWidthString(T)
Undocumented in source.
eatLine
deprecated template eatLine(OnEof onEof)
Undocumented in source.
fpToString
template fpToString(F)

Get shortest string representation of a FP type that still converts to exactly the same number.

toHex
template toHex(alias digits = hexDigits)
Undocumented in source.

Meta

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Authors

Vladimir Panteleev <vladimir@thecybershadow.net>