Skip to content

Commit e2ffbca

Browse files
committed
Use iterators when loading QOI images
1 parent 98e3539 commit e2ffbca

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

image/shared/src/main/scala/eu/joaocosta/minart/graphics/image/QoiImageLoader.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import java.io.InputStream
55
import scala.annotation.tailrec
66

77
import eu.joaocosta.minart.graphics._
8-
import eu.joaocosta.minart.graphics.image.helpers.LazyListHelpers._
8+
import eu.joaocosta.minart.graphics.image.helpers.IteratorHelpers._
99
import eu.joaocosta.minart.graphics.image.helpers._
1010

1111
/** Image loader for QOI files.
@@ -30,7 +30,7 @@ object QoiImageLoader extends ImageLoader {
3030
colorspace: Byte
3131
)
3232
object Header {
33-
def fromBytes(bytes: LazyList[Int]): ParseResult[Header] = (
33+
def fromBytes(bytes: Iterator[Int]): ParseResult[Header] = (
3434
for {
3535
magic <- readString(4).validate(supportedFormats, m => s"Unsupported format: $m")
3636
width <- readBENumber(4)
@@ -95,7 +95,7 @@ object QoiImageLoader extends ImageLoader {
9595
State.pure(OpRun(run + 1))
9696
}
9797

98-
def loadOps(bytes: LazyList[Int]): LazyList[Either[String, Op]] =
98+
def loadOps(bytes: Iterator[Int]): LazyList[Either[String, Op]] =
9999
if (bytes.isEmpty) LazyList.empty
100100
else
101101
fromBytes.run(bytes) match {
@@ -175,7 +175,7 @@ object QoiImageLoader extends ImageLoader {
175175
}
176176

177177
def loadImage(is: InputStream): Either[String, RamSurface] = {
178-
val stream: LazyList[Int] = LazyList.continually(is.read()).takeWhile(_ != -1)
178+
val stream: Iterator[Int] = Iterator.continually(is.read()).takeWhile(_ != -1)
179179
Header.fromBytes(stream).flatMap { case (data, header) =>
180180
asSurface(Op.loadOps(data), header)
181181
}

0 commit comments

Comments
 (0)