Target.kt

  1. package com.hexagontk.injection

  2. import kotlin.reflect.KClass

  3. data class Target<T : Any>(
  4.     val type: KClass<T>,
  5.     val tag: Any = Unit,
  6. ) {
  7.     companion object {
  8.         inline fun <reified T: Any> Target(tag: Any = Unit) =
  9.             Target(T::class, tag)
  10.     }

  11.     override fun toString(): String =
  12.         if (tag == Unit) type.toString()
  13.         else "$type with tag '$tag'"
  14. }