BinaryRegistry

trait BinaryRegistry[A, B, Op, R] extends UImpl2[Op, A, B, R] with MMRegistry2[UImpl2[Op, _ <: A, _ <: B, _ <: R]]

This is a special kind of BinaryOp that supports registration of specialized implementations for a given operation.

trait MMRegistry2[UImpl2[Op, _ <: A, _ <: B, _ <: R]]
trait UImpl2[Op, A, B, R]
trait Serializable
class Object
trait Matchable
class Any

Value members

Concrete methods

def apply(a: A, b: B): R
protected def bindingMissing(a: A, b: B): R
protected def multipleOptions(a: A, b: B, m: Map[(Class[_], Class[_]), UImpl2[Op, _ <: A, _ <: B, _ <: R]]): Nothing
def register[AA <: A, BB <: B](op: UImpl2[Op, AA, BB, _ <: R])(implicit cA: ClassTag[AA], cB: ClassTag[BB]): UImpl2[Op, AA, BB, _ <: R]

Inherited methods

def register(a: Class[_], b: Class[_], op: UImpl2[Op, _ <: A, _ <: B, _ <: R]): Unit
Inherited from:
MMRegistry2
def resolve(a: Class[_], b: Class[_]): Map[(Class[_], Class[_]), UImpl2[Op, _ <: A, _ <: B, _ <: R]]
Inherited from:
MMRegistry2
protected def selectBestOption(options: Map[(Class[_], Class[_]), UImpl2[Op, _ <: A, _ <: B, _ <: R]]): MapView[(Class[_], Class[_]), UImpl2[Op, _ <: A, _ <: B, _ <: R]]

This selects based on the partial order induced by the inheritance hierarchy. If there is ambiguity, all are returned.

This selects based on the partial order induced by the inheritance hierarchy. If there is ambiguity, all are returned.

Inherited from:
MMRegistry2

Inherited fields

protected val cache: ConcurrentHashMap[(Class[_], Class[_]), Option[UImpl2[Op, _ <: A, _ <: B, _ <: R]]]
Inherited from:
MMRegistry2
protected val ops: HashMap[(Class[_], Class[_]), UImpl2[Op, _ <: A, _ <: B, _ <: R]]
Inherited from:
MMRegistry2