Coverage Summary for Class: CompressHeader (lzwpack)

Class Method, % Line, %
CompressHeader$ 100% (6/ 6) 88.9% (8/ 9)
total 100% (6/ 6) 88.9% (8/ 9)


1 package lzwpack 2  3 import fs2.{Segment, Stream} 4  5 /** 6  * Provides compress(1) compatible file header coding and decoding. 7  */ 8 object CompressHeader { 9  val Header: List[Byte] = List(0x1f.toByte, 0x9d.toByte) 10  val CodeSizeMarker = 0x90.toByte 11  12  def decode[F[_]](stream: Stream[F, Byte]): Stream[F, Byte] = stream.take(2).segmentN(2).flatMap { segment => 13  if (segment.force.toList == Header) 14  stream.drop(3) 15  else 16  stream 17  } 18  19  def encode[F[_]](stream: Stream[F, Byte]): Stream[F, Byte] = stream.cons(Segment.seq(Header) ++ Segment(CodeSizeMarker)) 20 }