On Saturday, 11 December 2021 at 19:50:55 UTC, russhy wrote:
you need to import a 8k lines of code module that itself imports other modules, and then the code is hard to read

I agree.

```
@safe:

auto deatheater(char stripchar)(string str) {
        struct voldemort {
        immutable(char)* begin, end;
        bool empty(){ return begin == end; }
        char front(){ return *begin; }
        char back()@trusted{ return *(end-1); }
        void popFront()@trusted{
while(begin != end){begin++; if (*begin != stripchar) break; }
        }
        void popBack()@trusted{
while(begin != end){end--; if (*(end-1) != stripchar) break; }
        }
        this(string s)@trusted{
            begin = s.ptr;
            end = s.ptr + s.length;
        }
        }
    return voldemort(str);
}


void main() {
    import std.stdio;
    string str = "abc;def;ab";
    foreach(c; deatheater!';'(str)) write(c);
    writeln();
    foreach_reverse(c; deatheater!';'(str)) write(c);
}

```


Reply via email to