UNPKG

veffect

Version:

powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha

33 lines (29 loc) 685 B
/** * @since 2.0.0 */ /** * @category symbol * @since 2.0.0 */ export declare const nonEmpty: unique symbol /** * @category model * @since 2.0.0 */ export interface NonEmptyIterable<out A> extends Iterable<A> { readonly [nonEmpty]: A } /** * @category getters * @since 2.0.0 */ export const unprepend = <A>(self: NonEmptyIterable<A>): [firstElement: A, remainingElements: Iterator<A>] => { const iterator = self[Symbol.iterator]() const next = iterator.next() if (next.done) { throw new Error( "BUG: NonEmptyIterator should not be empty - please report an issue at https://github.com/Effect-TS/effect/issues" ) } return [next.value, iterator] }