import { SelfDescribingValue } from "./SelfDescribingValue.js";

/**
 * @template T
 * @extends Iterable<SelfDescribing>
 */
export class SelfDescribingValueIterator {
    #iterable;

    /**
     *
     * @param {Iterable<T>} iterable
     */
    constructor(iterable) {
        this.#iterable = iterable;
    }

    * [Symbol.iterator]() {

        for (const el of this.#iterable) {

            yield new SelfDescribingValue(el);

        }

    }
}
