Sebastian Walz 860d31cee1
Tohu vaBohu
2023-04-21 00:22:52 +02:00

31 lines
1.1 KiB
Nix

{ list, string, ... }:
let
concat = splits: string.concat (list.flat splits);
splitSpaces = string.split "([[:space:]]+)";
ltrim'
= parts:
if list.head parts == ""
&& parts != [ "" ]
then
list.generate (x: list.get parts ( x + 2 )) ( list.length parts - 2 )
else
parts;
rtrim'
= parts:
if list.foot parts == ""
&& parts != [ "" ]
then
list.generate (x: list.get parts x) ( list.length parts - 2 )
else
parts;
trim' = text: list.flat ( rtrim' ( ltrim' ( splitSpaces text ) ) );
trim = text: string.concat ( trim' text );
in
{
__functor = self: trim;
ltrim = text: concat (ltrim' (splitSpaces text));
rtrim = text: concat (rtrim' (splitSpaces text));
inherit ltrim' rtrim' trim trim';
}