public EntryPoint(EntryPointMode mode, Func <ImmutableArray <string>, Task <int> > main) { Mode = mode; _main = main ?? throw new ArgumentNullException(nameof(main)); }
public static IEntryPoint EntryPoint(EntryPointMode mode, Func <ImmutableArray <string>, Task <int> > main) => new EntryPoint(mode, main);
public static IEntryPoint EntryPoint(EntryPointMode mode, Func <ImmutableArray <string>, Task> main) => new EntryPoint(mode, async args => { await main(args); return(0); });
public static IEntryPoint EntryPoint(EntryPointMode mode, Func <ImmutableArray <string>, int> main) => EntryPoint(mode, args => Task.FromResult(main(args)));
public static IEntryPoint EntryPoint(EntryPointMode mode, Action <ImmutableArray <string> > main) => new EntryPoint(mode, args => { main(args); return(Task.FromResult(0)); });