Pro

object Pro
Source
__.scala
class java.lang.Object
trait scala.Matchable
class Any

Member

trait Mutable[A] extends Pro[A]

Read/write property

The usual implementation looks like:

class Foo:
 val namePro           : Pro.M[String] = Pro.M[String]("")
 def name             : String        = namePro()
 def name_=(v :String): Unit          = namePro() = v
 val barPro            : Int.Pro.M     = Int.Pro.M(0)
 def bar              : Int           = valuePro()
 def bar_=(v :Int)    : Unit          = valuePro() = v
Source
__.scala
trait Mutable[A] extends Pro[A]

Read/write property

The usual implementation looks like:

class Foo:
 val namePro           : Pro.M[String] = Pro.M[String]("")
 def name             : String        = namePro()
 def name_=(v :String): Unit          = namePro() = v
 val barPro            : Int.Pro.M     = Int.Pro.M(0)
 def bar              : Int           = valuePro()
 def bar_=(v :Int)    : Unit          = valuePro() = v
Source
__.scala
trait Observable[+A] extends Pro[A] with Gen.O
trait Observable[+A] extends Pro[A] with Gen.O
trait ObservableMutable[A] extends Pro.O[A] with Pro.M[A]

Read/write/listenTo Property`

The usual implementation looks like:

class Foo:
  val namePro          : Pro.OM[String] = String.Pro.OM("")
  def name            : String         = namePro()
  def name_=(v:String): Unit           = namePro() = v
  val barPro           : Int.Pro.OM     = Int.Pro.OM(0)
  def bar             : Int            = valuePro()
  def bar_=(v:Int)    : Unit           = valuePro() = v
Source
__.scala
trait ObservableMutable[A] extends Pro.O[A] with Pro.M[A]

Read/write/listenTo Property`

The usual implementation looks like:

class Foo:
  val namePro          : Pro.OM[String] = String.Pro.OM("")
  def name            : String         = namePro()
  def name_=(v:String): Unit           = namePro() = v
  val barPro           : Int.Pro.OM     = Int.Pro.OM(0)
  def bar             : Int            = valuePro()
  def bar_=(v:Int)    : Unit           = valuePro() = v
Source
__.scala
object X

Type Extentions

This object contains all provided base type implementations

Source
X.scala

Alias

type M[A] = Pro.Mutable[A]
Source
__.scala
inline def M: Pro.Mutable
Source
__.scala
type O[A] = Pro.Observable[A]
Source
__.scala
inline def O: Pro.Observable
Source
__.scala
Source
__.scala

Def

def apply[A](source: => A): Pro[A]
Source
__.scala
def unapply[A](v: Pro[A]): scala.Option[A]
Source
__.scala

Implicit

implicit inline def implicitToFunction[A](v: Pro[A]): () => A
Source
__.scala