All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.metastack.metarx.reactive.stream.PartialChannel.scala Maven / Gradle / Ivy

The newest version!
package pl.metastack.metarx.reactive.stream

import pl.metastack.metarx.ReadChannel

trait PartialChannel[T] {
  /** true if partial channel has a value, false otherwise */
  def isDefined(implicit ev: T <:< Option[_]): ReadChannel[Boolean]

  def undefined(implicit ev: T <:< Option[_]): ReadChannel[Boolean]

  /** Filters out all defined values */
  def values[U](implicit ev: T <:< Option[U]): ReadChannel[U]

  def mapValues[U, V](f: U => V)(implicit ev: T <:< Option[U]): ReadChannel[Option[V]]

  def mapOrElse[U, V](f: U => V, default: => V)(implicit ev: T <:< Option[U]): ReadChannel[V]

  def count(implicit ev: T <:< Option[_]): ReadChannel[Int]

  def orElse[U](default: => ReadChannel[U])(implicit ev: T <:< Option[U]): ReadChannel[U]

  def contains[U](value: U)(implicit ev: T <:< Option[U]): ReadChannel[Boolean]
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy