idiot 0.9.2

Informative terminal output as you iterate over a callback

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

Idiot Library

Have a task where you need to iterate a callback over an array of arguments? Use Idiot! Idiot unintrusively inserts into your code to produce beautiful command-line output.

Compile and Install

In build/scripts there are three scripts you can use to build the library. When the library is built, it will be located in build/libraries.

On POSIX-Compliant Machines (Linux, Mac OS X)

Run ./build/scripts/ If you get a permissions error, you need to set that file to be executable using the chmod command.

On Windows

Run .\build\scripts\build.bat from a cmd or run .\build\scripts\build.ps1 from the PowerShell command line. If you get a warning about needing a cryptographic signature for the PowerShell script, it is probably because your system is blocking running unsigned PowerShell scripts. Just run the other script if that is the case.


Here is how you use it:

import idiot;

void main ()
    bool doNothing (size_t index, string[] arguments)
        return true; // This will always be successful

    string[] arguments = [
        "more nothing",
        "still more nothing",
        "even more nothing",
        "no thing",

    auto idiot = new Idiot!string(&doNothing);

The type parameter passed into the Idiot object is the type of the arguments, which, in the above case, was a string.

And here are the configuration options at your disposal:

class Idiot(T)
    // Output configuration
    public bool showFraction = true;
    public bool showPercent = true;
    public bool showMarginalTime = true;
    public bool showCumulativeTime = true;

    // Execution configuration
    public bool continueOnSuccess = true; // if false, only executes until success occurs
    public bool continueOnFailure = true;
    public bool continueOnException = true;
    public bool delegate (size_t, T[]) callback;
    public size_t millisecondsToPauseInBetweenIterations = 0u;
    public size_t maximumMillisecondsOfAdditionalRandomPause = 0u;

    // ...


Future Developments

I would like to make a command-line tools like xargs with this library.

Contact Me

If you would like to suggest fixes or improvements on this library, please just leave an issue on this GitHub page. If you would like to contact me for other reasons, please email me at (My GPG Key) (My TLS Certificate). :boar:

  • Jonathan M. Wilbur <>
0.9.2 2018-Jan-19
0.9.1 2018-Jan-19
~master 2018-Jan-19
Show all 3 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 12 downloads total

Short URL: