While the order of traits metter during their mixing then how I can force their order in a specific way. For example I have this:
val t = new Wink with Dash with Right with Left
and I want to put conditions, like if Right NOT Left and let say Dash COMES FIRST THEN Right OR Left
One way to accomplish such restrictions on ways of mixing traits is following:
trait Dash[T <: Dash[T]]
trait Right extends Dash[Right]
trait Left extends Dash[Left]
val t = new Wink with Dash[Right]
This way, [T <: Dash[T]] forces us to provide either Right or Left trait right away. (Right or Left in your requirements)
On the other hand Due to extension extends Dash[Right], Right or Left trait can not be mixed in without use of Dash. (Dash comes first in your requirements)
It also sounds as if you are checking some condition in order to decide between Right or Left. This could be done like this:
val t = if (p) new Wink with Dash[Right] else new Wink with Dash[Left]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With