Parsing and Mutating Strings
inocan-group/inferred-typesUtilities in this library which provide effective ways to parse or mutate text at both runtime and design-time while ensuring that the resulting type is as narrow as possible.
18 stars
0 forks
8 views
SKILL.md
name: Parsing and Mutating Strings description: Utilities in this library which provide effective ways to parse or mutate text at both runtime and design-time while ensuring that the resulting type is as narrow as possible.
Parsing and Mutating Strings
Instructions
-
Identify which of the two best describe your needs:
Simple- finding a sub-string inside a string variable
- stripping or retaining content UNTIL a certain delimiter is found
- ensuring that the string starts or ends with a certain sub-string
Structured- you need to parse a string for language features
- different parts of the string will have different parsing rules based on the characters which preceded it.
-
If your need fits the
Simpledescription then ...You will likely want to use one of the following type or runtime utilities found in this repo. Every utility's source will have a description above the symbol and many also may include a simple example.
Type Utilities
you can import all of these utilities from
inferred-types/types- Trim whitespace
- Strip a subsection of content
StripAfter<TStr,TBreak>[ source, examples ] - stripTStripafter first instance ofTBreakStripAfterLast<TStr,TBreak>[ source, examples ] - stripTStripafter last instance ofTBreakStripBefore<TStr,TBreak>[ source, examples ] - stripTStrbefore the substringTBreakis found; retain the restStripFirst<T,U>[ source, examples ]StripLeading<T,U>[ source, examples ]StripSurround<T,U>[ source, examples ]StripTrailing<T,U>[ source, examples ]StripUntil<T,U>[ source, examples ]
- Retain a subsection of content (the inverse of "strip")
- String Interpolation (aka, injecting content into sections of a corpus of text)
- TODO
-
If your need fits the
Structuredneed then ...
Notes:
- there is often (but not always) a 1:1 relationship between a type utility and a runtime function.
- The runtime function (often but not always) will leverage the corresponding type utility to produce narrow types.
- many example links are to test files; these test files use both runtime and type tests. For more about type tests you can read type testing document.