union types
в рсокет есть такой класс Payload(data: BRP, metadata: BRP?)
BRP - это пакет байтиков
хотелось бы для удобства/простоты иметь возможность создавать этот Payload как-то через такую ф-ию
fun Payload(data: String | ByteArray | BRP, metadata: (String | ByteArray | BRP | Metadata)? = null): Payload = ...
но union types у нас нет
как бы Вы предложили это сделать?
конструкторы разные
посчитайте сколько их будет
Принимать BRP, а его конструирование переложить на пользователя 🌚
15 ф-ий :)
если это чтобы вызывать, то можно силеды сделать BytePayload(array), StringPayload("string")
не удобно, потому что его создание это например: buildPacket { writeText(string) } для строки )
хотя в принципе и принимать также можно, тип if(payload is BytePayload)
BRP.fromString(string) сделать
это разве проблема если вам нужно такое апи?
просто хочется чего-то лучше
Sealed классы, но они только под ваше апи
да здесь они как-то вообще не к место
Обсуждают сегодня