namespace Invercargill { public static Enumerable range(int from, int to, int increment = 1) { return new RangeEnumerable(from, to, increment); } public static Enumerable empty() { return new EmptyEnumerable(); } public static Enumerable single(T item) { var seq = new Invercargill.Series(); seq.add(item); return seq; } public static TransformDelegate trycatch(ErrorThrowingDelegate main, ErrorCatchingDelegate handler) { return (i) => { try { return main(i); } catch(Error e) { return handler(i, e); } }; } public static TransformDelegate trydefault(ErrorThrowingDelegate func, Tout default_value) { return (i) => { try { return func(i); } catch { return default_value; } }; } public static Enumerable directory(string path, uint flags = 0) throws FileError { return new DirEnumerable(Dir.open(path, flags)); } }