Mode prefixes present in target. May be present on both channels and users.
import virc.common : Channel, User; { Target target; target.channel = Channel("#hello"); assert(target == Channel("#hello")); assert(target != User("test")); assert(target == "#hello"); assert(target.isChannel && !target.isUser); } { Target target; target.user = User("test"); assert(target != Channel("#hello")); assert(target == User("test")); assert(target == "test"); assert(!target.isChannel && target.isUser); } { Target target; assert(target != Channel("#hello")); assert(target != User("test")); assert(target != "test"); assert(target != "#hello"); } assert(Target("Hello", "+@%", "#&") == User("Hello")); assert(Target(Channel("#test")) == Channel("#test")); assert(Target(User("Test")) == User("Test")); { auto target = Target("+Hello", "+@%", "#&"); assert(target == User("Hello")); assert(target.prefixes == "+"); } assert(Target("#Hello", "+@%", "#&") == Channel("#Hello")); { auto target = Target("+#Hello", "+@%", "#&"); assert(target == Channel("#Hello")); assert(target.prefixes == "+"); } { auto target = Target("+@#Hello", "+@%", "#&"); assert(target == Channel("#Hello")); assert(target.prefixes == "+@"); } { auto target = Target("", "", ""); assert(target.channel.isNull); assert(target.user.isNull); }