ZTransducer

Companion:
class
class Object
trait Matchable
class Any

Type members

Classlikes

object Push

Value members

Concrete methods

def apply[R, E, I, O](push: ZManaged[R, Nothing, Option[Chunk[I]] => ZIO[R, E, Chunk[O]]]): ZTransducer[R, E, I, O]
def apply[I]: ZTransducer[Any, Nothing, I, I]

Shorthand form for ZTransducer.identity. Use as:

Shorthand form for ZTransducer.identity. Use as:

ZTransducer[Int].filter(_ % 2 != 0)
def branchAfter[R, E, I, O](n: Int)(f: Chunk[I] => ZTransducer[R, E, I, O]): ZTransducer[R, E, I, O]

Reads the first n values from the stream and uses them to choose the transducer that will be used for the remainder of the stream. If the stream ends before it has collected n values the partial chunk will be provided to f.

Reads the first n values from the stream and uses them to choose the transducer that will be used for the remainder of the stream. If the stream ends before it has collected n values the partial chunk will be provided to f.

def collectAllN[I](n: Int): ZTransducer[Any, Nothing, I, Chunk[I]]

Creates a transducer accumulating incoming values into chunks of maximum size n.

Creates a transducer accumulating incoming values into chunks of maximum size n.

def collectAllToMapN[K, I](n: Long)(key: I => K)(f: (I, I) => I): ZTransducer[Any, Nothing, I, Map[K, I]]

Creates a transducer accumulating incoming values into maps of up to n keys. Elements are mapped to keys using the function key; elements mapped to the same key will be merged with the function f.

Creates a transducer accumulating incoming values into maps of up to n keys. Elements are mapped to keys using the function key; elements mapped to the same key will be merged with the function f.

def collectAllToSetN[I](n: Long): ZTransducer[Any, Nothing, I, Set[I]]

Creates a transducer accumulating incoming values into sets of maximum size n.

Creates a transducer accumulating incoming values into sets of maximum size n.

def collectAllWhile[I](p: I => Boolean): ZTransducer[Any, Nothing, I, List[I]]

Accumulates incoming elements into a chunk as long as they verify predicate p.

Accumulates incoming elements into a chunk as long as they verify predicate p.

def collectAllWhileM[R, E, I](p: I => ZIO[R, E, Boolean]): ZTransducer[R, E, I, List[I]]

Accumulates incoming elements into a chunk as long as they verify effectful predicate p.

Accumulates incoming elements into a chunk as long as they verify effectful predicate p.

def die(e: => Throwable): ZTransducer[Any, Nothing, Any, Nothing]

Creates a transducer that always dies with the specified exception.

Creates a transducer that always dies with the specified exception.

def dropWhile[I](p: I => Boolean): ZTransducer[Any, Nothing, I, I]

Creates a transducer that starts consuming values as soon as one fails the predicate p.

Creates a transducer that starts consuming values as soon as one fails the predicate p.

def dropWhileM[R, E, I](p: I => ZIO[R, E, Boolean]): ZTransducer[R, E, I, I]

Creates a transducer that starts consuming values as soon as one fails the effectful predicate p.

Creates a transducer that starts consuming values as soon as one fails the effectful predicate p.

def fail[E](e: => E): ZTransducer[Any, E, Any, Nothing]

Creates a transducer that always fails with the specified failure.

Creates a transducer that always fails with the specified failure.

def fold[I, O](z: O)(contFn: O => Boolean)(f: (O, I) => O): ZTransducer[Any, Nothing, I, O]

Creates a transducer by folding over a structure of type O for as long as contFn results in true. The transducer will emit a value when contFn evaluates to false and then restart the folding.

Creates a transducer by folding over a structure of type O for as long as contFn results in true. The transducer will emit a value when contFn evaluates to false and then restart the folding.

def foldLeft[I, O](z: O)(f: (O, I) => O): ZTransducer[Any, Nothing, I, O]

Creates a transducer by folding over a structure of type O. The transducer will fold the inputs until the stream ends, resulting in a stream with one element.

Creates a transducer by folding over a structure of type O. The transducer will fold the inputs until the stream ends, resulting in a stream with one element.

def foldLeftM[R, E, I, O](z: O)(f: (O, I) => ZIO[R, E, O]): ZTransducer[R, E, I, O]

Creates a transducer by effectfully folding over a structure of type O. The transducer will fold the inputs until the stream ends, resulting in a stream with one element.

Creates a transducer by effectfully folding over a structure of type O. The transducer will fold the inputs until the stream ends, resulting in a stream with one element.

def foldM[R, E, I, O](z: O)(contFn: O => Boolean)(f: (O, I) => ZIO[R, E, O]): ZTransducer[R, E, I, O]

Creates a sink by effectfully folding over a structure of type S.

Creates a sink by effectfully folding over a structure of type S.

def foldUntil[I, O](z: O, max: Long)(f: (O, I) => O): ZTransducer[Any, Nothing, I, O]

Creates a transducer that folds elements of type I into a structure of type O until max elements have been folded.

Creates a transducer that folds elements of type I into a structure of type O until max elements have been folded.

Like foldWeighted, but with a constant cost function of 1.

def foldUntilM[R, E, I, O](z: O, max: Long)(f: (O, I) => ZIO[R, E, O]): ZTransducer[R, E, I, O]

Creates a transducer that effectfully folds elements of type I into a structure of type O until max elements have been folded.

Creates a transducer that effectfully folds elements of type I into a structure of type O until max elements have been folded.

Like foldWeightedM, but with a constant cost function of 1.

def foldWeighted[I, O](z: O)(costFn: (O, I) => Long, max: Long)(f: (O, I) => O): ZTransducer[Any, Nothing, I, O]

Creates a transducer that folds elements of type I into a structure of type O, until max worth of elements (determined by the costFn) have been folded.

Creates a transducer that folds elements of type I into a structure of type O, until max worth of elements (determined by the costFn) have been folded.

Note:

Elements that have an individual cost larger than max will force the transducer to cross the max cost. See foldWeightedDecompose for a variant that can handle these cases.

def foldWeightedDecompose[I, O](z: O)(costFn: (O, I) => Long, max: Long, decompose: I => Chunk[I])(f: (O, I) => O): ZTransducer[Any, Nothing, I, O]

Creates a transducer that folds elements of type I into a structure of type O, until max worth of elements (determined by the costFn) have been folded.

Creates a transducer that folds elements of type I into a structure of type O, until max worth of elements (determined by the costFn) have been folded.

The decompose function will be used for decomposing elements that cause an O aggregate to cross max into smaller elements. For example:

Stream(1, 5, 1)
 .aggregate(
   ZTransducer
     .foldWeightedDecompose(List[Int]())((_, i: Int) => i.toLong, 4,
       (i: Int) => if (i > 1) Chunk(i - 1, 1) else Chunk(i)) { (acc, el) =>
       el :: acc
     }
     .map(_.reverse)
 )
 .runCollect

The stream would emit the elements List(1), List(4), List(1, 1).

Be vigilant with this function, it has to generate "simpler" values or the fold may never end. A value is considered indivisible if decompose yields the empty chunk or a single-valued chunk. In these cases, there is no other choice than to yield a value that will cross the threshold.

The foldWeightedDecomposeM allows the decompose function to return a ZIO value, and consequently it allows the transducer to fail.

def foldWeightedDecomposeM[R, E, I, O](z: O)(costFn: (O, I) => ZIO[R, E, Long], max: Long, decompose: I => ZIO[R, E, Chunk[I]])(f: (O, I) => ZIO[R, E, O]): ZTransducer[R, E, I, O]

Creates a transducer that effectfully folds elements of type I into a structure of type S, until max worth of elements (determined by the costFn) have been folded.

Creates a transducer that effectfully folds elements of type I into a structure of type S, until max worth of elements (determined by the costFn) have been folded.

The decompose function will be used for decomposing elements that cause an S aggregate to cross max into smaller elements. Be vigilant with this function, it has to generate "simpler" values or the fold may never end. A value is considered indivisible if decompose yields the empty chunk or a single-valued chunk. In these cases, there is no other choice than to yield a value that will cross the threshold.

See foldWeightedDecompose for an example.

def foldWeightedM[R, E, I, O](z: O)(costFn: (O, I) => ZIO[R, E, Long], max: Long)(f: (O, I) => ZIO[R, E, O]): ZTransducer[R, E, I, O]

Creates a transducer that effectfully folds elements of type I into a structure of type S, until max worth of elements (determined by the costFn) have been folded.

Creates a transducer that effectfully folds elements of type I into a structure of type S, until max worth of elements (determined by the costFn) have been folded.

Note:

Elements that have an individual cost larger than max will force the transducer to cross the max cost. See foldWeightedDecomposeM for a variant that can handle these cases.

def fromEffect[R, E, A](zio: ZIO[R, E, A]): ZTransducer[R, E, Any, A]

Creates a transducer that always evaluates the specified effect.

Creates a transducer that always evaluates the specified effect.

def fromFunction[I, O](f: I => O): ZTransducer[Any, Nothing, I, O]

Creates a transducer that purely transforms incoming values.

Creates a transducer that purely transforms incoming values.

def fromFunctionM[R, E, I, O](f: I => ZIO[R, E, O]): ZTransducer[R, E, I, O]

Creates a transducer that effectfully transforms incoming values.

Creates a transducer that effectfully transforms incoming values.

def fromPush[R, E, I, O](push: Option[Chunk[I]] => ZIO[R, E, Chunk[O]]): ZTransducer[R, E, I, O]

Creates a transducer from a chunk processing function.

Creates a transducer from a chunk processing function.

def groupAdjacentBy[I, K](f: I => K): ZTransducer[Any, Nothing, I, (K, NonEmptyChunk[I])]

Creates a transducer that groups adjacent elements by key, using the keying function f.

Creates a transducer that groups adjacent elements by key, using the keying function f.

def head[O]: ZTransducer[Any, Nothing, O, Option[O]]

Creates a transducer that returns the first element of the stream, if it exists.

Creates a transducer that returns the first element of the stream, if it exists.

def identity[I]: ZTransducer[Any, Nothing, I, I]

The identity transducer. Passes elements through.

The identity transducer. Passes elements through.

def last[O]: ZTransducer[Any, Nothing, O, Option[O]]

Creates a transducer that returns the last element of the stream, if it exists.

Creates a transducer that returns the last element of the stream, if it exists.

def prepend[A](values: Chunk[A]): ZTransducer[Any, Nothing, A, A]

Emits the provided chunk before emitting any other value.

Emits the provided chunk before emitting any other value.

def splitOn(delimiter: String): ZTransducer[Any, Nothing, String, String]

Splits strings on a delimiter.

Splits strings on a delimiter.

def splitOnChunk[A](delimiter: Chunk[A]): ZTransducer[Any, Nothing, A, Chunk[A]]

Splits elements on a delimiter and transforms the splits into desired output.

Splits elements on a delimiter and transforms the splits into desired output.

Inherited methods

def deflate(bufferSize: Int, noWrap: Boolean, level: CompressionLevel, strategy: CompressionStrategy, flushMode: FlushMode): ZTransducer[Any, Nothing, Byte, Byte]

Compresses stream with 'deflate' method described in https://tools.ietf.org/html/rfc1951. Each incoming chunk is compressed at once, so it can utilize thread for long time if chunks are big.

Compresses stream with 'deflate' method described in https://tools.ietf.org/html/rfc1951. Each incoming chunk is compressed at once, so it can utilize thread for long time if chunks are big.

Value parameters:
bufferSize

Size of internal buffer used for pulling data from deflater, affects performance.

noWrap

Whether output stream is wrapped in ZLIB header and trailer. For HTTP 'deflate' content-encoding should be false, see https://tools.ietf.org/html/rfc2616.

Inherited from:
ZTransducerPlatformSpecificConstructors

Decompresses gzipped stream. Compression method is described in https://tools.ietf.org/html/rfc1952.

Decompresses gzipped stream. Compression method is described in https://tools.ietf.org/html/rfc1952.

Value parameters:
bufferSize

Size of buffer used internally, affects performance.

Inherited from:
ZTransducerPlatformSpecificConstructors
def gzip(bufferSize: Int, level: CompressionLevel, strategy: CompressionStrategy, flushMode: FlushMode): ZTransducer[Any, Nothing, Byte, Byte]
Value parameters:
bufferSize

Size of buffer used internally, affects performance.

Inherited from:
ZTransducerPlatformSpecificConstructors
def inflate(bufferSize: Int, noWrap: Boolean): ZTransducer[Any, CompressionException, Byte, Byte]

Decompresses deflated stream. Compression method is described in https://tools.ietf.org/html/rfc1951.

Decompresses deflated stream. Compression method is described in https://tools.ietf.org/html/rfc1951.

Value parameters:
bufferSize

Size of buffer used internally, affects performance.

noWrap

Whether is wrapped in ZLIB header and trailer, see https://tools.ietf.org/html/rfc1951. For HTTP 'deflate' content-encoding should be false, see https://tools.ietf.org/html/rfc2616.

Inherited from:
ZTransducerPlatformSpecificConstructors

Concrete fields

Decodes chunks of ISO/IEC 8859-1 bytes into strings.

Decodes chunks of ISO/IEC 8859-1 bytes into strings.

This transducer uses the String constructor's behavior when handling malformed byte sequences.

val splitLines: ZTransducer[Any, Nothing, String, String]

Splits strings on newlines. Handles both Windows newlines (\r\n) and UNIX newlines (\n).

Splits strings on newlines. Handles both Windows newlines (\r\n) and UNIX newlines (\n).

val usASCIIDecode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of US-ASCII bytes into strings.

Decodes chunks of US-ASCII bytes into strings.

This transducer uses the String constructor's behavior when handling malformed byte sequences.

val utf16BEDecode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of UTF-16BE bytes into strings.

Decodes chunks of UTF-16BE bytes into strings.

This transducer uses the String constructor's behavior when handling malformed byte sequences.

val utf16Decode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of UTF-16 bytes into strings. If no byte order mark is found big-endianness is assumed.

Decodes chunks of UTF-16 bytes into strings. If no byte order mark is found big-endianness is assumed.

This transducer uses the endisn-specific String constructor's behavior when handling malformed byte sequences.

val utf16LEDecode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of UTF-16LE bytes into strings.

Decodes chunks of UTF-16LE bytes into strings.

This transducer uses the String constructor's behavior when handling malformed byte sequences.

lazy val utf32BEDecode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of UTF-32BE bytes into strings.

Decodes chunks of UTF-32BE bytes into strings.

This transducer uses the String constructor's behavior when handling malformed byte sequences.

lazy val utf32Decode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of UTF-32 bytes into strings. If no byte order mark is found big-endianness is assumed.

Decodes chunks of UTF-32 bytes into strings. If no byte order mark is found big-endianness is assumed.

lazy val utf32LEDecode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of UTF-32LE bytes into strings.

Decodes chunks of UTF-32LE bytes into strings.

This transducer uses the String constructor's behavior when handling malformed byte sequences.

val utf8Decode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of UTF-8 bytes into strings.

Decodes chunks of UTF-8 bytes into strings.

This transducer uses the String constructor's behavior when handling malformed byte sequences.

val utfDecode: ZTransducer[Any, Nothing, Byte, String]

Decodes chunks of Unicode bytes into strings.

Decodes chunks of Unicode bytes into strings.

Detects byte order marks for UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE or defaults to UTF-8 if no BOM is detected.