Hyperlinkv0.8.0-beta.28

Iterable

Iterable.sizeconsteffect/Iterable.ts:469
<A>(self: Iterable<A>): number

Returns the number of elements in a Iterable.

Example (Counting iterable elements)

import { Iterable } from "effect"

const numbers = [1, 2, 3, 4, 5]
console.log(Iterable.size(numbers)) // 5

const empty = Iterable.empty<number>()
console.log(Iterable.size(empty)) // 0

// Works with any iterable
const letters = "hello"
console.log(Iterable.size(letters)) // 5

// Note: This consumes the entire iterable
const range = Iterable.range(1, 100)
console.log(Iterable.size(range)) // 100
getters
export const size = <A>(self: Iterable<A>): number => {
  const iterator = self[Symbol.iterator]()
  let count = 0
  while (!iterator.next().done) {
    count++
  }
  return count
}