You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`find` has an overload that doesn't take a needle but requires an unary predicate function. `findSplitBefore` and `findSplitAfter` should have equivalent overloads.
Test illustrating use:
----
unittest
{
import std.algorithm : findSplitBefore;
import std.uni : isWhite;
import std.string : stripLeft;
immutable tests = [ "prefix postfix lorem ipsum", "prefix\tpostfix lorem ipsum"];foreach(test; tests){ auto result = test.findSplitBefore!isWhite(); assert(result[0] == "prefix"); assert(result[1].stripLeft() == "postfix lorem ipsum");}
}
----
It would be especially useful because `until` is strictly lazy and thus can't be used with slicing to reproduce the above results.
The text was updated successfully, but these errors were encountered:
Yup, I've ran into the same issue multiple times. This last time with the plain findSplit; I don't recall if also with findSplitBefore/After.
This workaround works:
range.byCodeUnit.findSplit!((a, b) => a.isWhite)(" ");
Interestingly, if you use "" instead of " " it won't work, which arguably is a bug, since the predicate doesn't even use b.
jakobovrum (@JakobOvrum) reported this on 2013-08-30T23:26:46Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=10933
CC List
Description
The text was updated successfully, but these errors were encountered: