Bi-Directional Function
TwoWayFun allows to convert value to some type and back
It is used in two way binded collections
val intToChar: TwoWayFun[Int,Char] = TwoWayFun(i => ('A' + i).toChar, _ - 'A')
val list: Idx.M[Int] = Stream(0, 2, 4).toBuffer
val view: Idx.M[Char] = list.twoWay_^(intToChar)
list.~.tp // Prints ~(0, 2, 4)
view.~.tp // Prints ~(A, C, E)
view(1) = 'Z' // Note, only second collection is updated, but both are changed
list.~.tp // Prints ~(0, 25, 4)
view.~.tp // Prints ~(A, Z, E)
- Companion
- object
- Source
- TwoWayFun.scala
trait A => B
class Object
trait Matchable
class Any
Extension
Extension method from TwoWayFun
Reverses two functions
Reverses two functions
apply
becomes undo
and undo
becomes apply
- Source
- TwoWayFun.scala