TagMergePolicy

izumi.distage.model.definition.dsl.IncludesDSL.TagMergePolicy
See theTagMergePolicy companion trait

Attributes

Companion
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

final case class MergePreferExistingWith(newTags: Set[BindingTag]) extends TagMergePolicy
new ModuleDef {
 tag(A.X)
 include(new ModuleDef {
   make[X].tagged(B.C)
 }, TagMergePolicy.MergePreferExistingWith(Set(B.D, C.G)))
}
// result:
make[X].tagged(A.X, B.C, C.G)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case object MergePreferInner extends TagMergePolicy
new ModuleDef {
 tag(A.X, B.C)
 include(new ModuleDef {
   make[X].tagged(A.Y)
 }, TagMergePolicy.MergePreferInner)
}
// result:
make[X].tagged(A.Y, B.C)

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
final case class MergePreferNewWith(newTags: Set[BindingTag]) extends TagMergePolicy
new ModuleDef {
 tag(A.X)
 include(new ModuleDef {
   make[X].tagged(B.C)
 }, TagMergePolicy.MergePreferNewWith(Set(B.D, C.G)))
}
// result:
make[X].tagged(A.X, B.D, C.G)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case object MergePreferOuter extends TagMergePolicy
new ModuleDef {
 tag(A.X, B.C)
 include(new ModuleDef {
   make[X].tagged(A.Y)
 }, TagMergePolicy.MergePreferOuter)
}
// result:
make[X].tagged(A.X, B.C)

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
final case class ReplaceWith(newTags: Set[BindingTag]) extends TagMergePolicy
new ModuleDef {
 tag(A.X)
 include(new ModuleDef {
   make[X].tagged(B.C)
 }, TagMergePolicy.ReplaceWith(Set(C.G)))
}
// result:
make[X].tagged(C.G)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case object UseOnlyInner extends TagMergePolicy

Do not modify tags in the included module), add its bindings as is.

Do not modify tags in the included module), add its bindings as is.

new ModuleDef {
 tag(A.X)
 include(new ModuleDef {
   make[X].tagged(B.C)
 }, TagMergePolicy.UseOnlyInner)
}
// result:
make[X].tagged(B.C)

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
case object UseOnlyOuter extends TagMergePolicy
new ModuleDef {
 tag(A.X)
 include(new ModuleDef {
   make[X].tagged(B.C)
 }, TagMergePolicy.UseOnlyOuter)
}
// result:
make[X].tagged(A.X)

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type

Inherited and Abstract types

type MirroredElemLabels <: Tuple

The names of the product elements.

The names of the product elements.

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type.

The name of the type.

Attributes

Inherited from:
Mirror