public class Generator<T> : IEnumerable<T>
    {
        private GeneratorEnumerator<T> _generatorEnumerator;

        public Generator(Func<int, T> generatorFunc)
        {
            _generatorEnumerator = new GeneratorEnumerator<T>(generatorFunc);
        }

        public IEnumerator<T> GetEnumerator()
        {
            return _generatorEnumerator;
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }


    }