
scala.compat.java8.converterImpl.Accumulates.scala Maven / Gradle / Ivy
The newest version!
package scala.compat.java8.converterImpl
import language.implicitConversions
import scala.compat.java8.collectionImpl._
import scala.compat.java8.runtime._
trait AccumulatesFromStepper[@specialized(Double, Int, Long) A, Acc <: AccumulatorLike[A, Acc]] {
def apply(stepper: Stepper[A]): Acc
}
final class CollectionCanAccumulate[A](private val underlying: TraversableOnce[A]) extends AnyVal {
def accumulate: Accumulator[A] = {
val a = new Accumulator[A]
underlying.foreach(a += _)
a
}
}
final class AccumulateDoubleCollection(private val underlying: TraversableOnce[Double]) extends AnyVal {
def accumulate: DoubleAccumulator = {
val da = new DoubleAccumulator
underlying.foreach(da += _)
da
}
}
final class AccumulateIntCollection(private val underlying: TraversableOnce[Int]) extends AnyVal {
def accumulate: IntAccumulator = {
val da = new IntAccumulator
underlying.foreach(da += _)
da
}
}
final class AccumulateLongCollection(private val underlying: TraversableOnce[Long]) extends AnyVal {
def accumulate: LongAccumulator = {
val da = new LongAccumulator
underlying.foreach(da += _)
da
}
}
final class AccumulateAnyArray[A](private val underlying: Array[A]) extends AnyVal {
def accumulate: Accumulator[A] = {
val a = new Accumulator[A]
var i = 0
while (i < underlying.length) { a += underlying(i); i += 1 }
a
}
}
final class AccumulateDoubleArray(private val underlying: Array[Double]) extends AnyVal {
def accumulate: DoubleAccumulator = {
val da = new DoubleAccumulator
var i = 0
while (i < underlying.length) { da += underlying(i); i += 1 }
da
}
}
final class AccumulateIntArray(private val underlying: Array[Int]) extends AnyVal {
def accumulate: IntAccumulator = {
val da = new IntAccumulator
var i = 0
while (i < underlying.length) { da += underlying(i); i += 1 }
da
}
}
final class AccumulateLongArray(private val underlying: Array[Long]) extends AnyVal {
def accumulate: LongAccumulator = {
val da = new LongAccumulator
var i = 0
while (i < underlying.length) { da += underlying(i); i += 1 }
da
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy