1 module exec.iexecprovider;
2 
3 import std.typecons: Tuple;
4 
5 alias Package = Tuple!(string, "name", string, "version_");
6 
7 /++
8 	Interface for exec providers that take source code
9 	and output the compiled program's output.
10 +/
11 interface IExecProvider
12 {
13 	struct RunInput
14 	{
15 		string source;
16 		string compiler = "dmd";
17 		string args;
18 		string stdin;
19 		bool color;
20 	}
21 	Tuple!(string, "output", bool, "success") compileAndExecute(RunInput input);
22 
23 
24 	// returns a list of all installed DUB packages
25 	Package[] installedPackages();
26 }