Общий вспомогательный код для библиотек и приложений на Kotlin.
Maven ru.kontur.kinfra:kinfra-commons
Для true вызывает переданную лямбду и возвращает её значение.
Для false сразу возвращает null.
Добавляет префикс к непустой строке. Пустую строку возвращает как есть.
Более безопасная альтернатива Optional.orElse(null): возвращаемый тип - T?, а не T!.
Создаёт новый time-based UUID.
Определяет, является ли данный UUID time-based (версии 1).
Возвращает Instant, соответствующий полю timestamp.
Возвращает название константы enum в нижнем регистре.
Аналог Instant на основе System.nanoTime() для измерения прошедшего времени.
Предназначен для передачи в вызываемый код информации о том, когда истечёт таймаут его выполнения.
Для корректной работы этого механизма необходимо использовать функцию withDeadlineAfter() вместо withTimeout().
Пример использования:
withDeadlineAfter(Duration.ofSeconds(10)) {
....
println("Time left: " + coroutineContext[Deadline]?.timeLeft())
}
Представляет время в тиках (100 наносекунд)
и позволяет конвертировать Instant или Duration в количество тиков и обратно.
Подклассы:
TimeSpan- промежуток времени (аналогDuration)Timestamp- момент времени (аналогInstant)
Timestamp имеет 3 подкласса для разных точек отсчёта:
DotNetTimestamp- 01.01.0001 (используется в .NET)UuidTimestamp- 15.10.1582 (используется в UUID)EpochTimestamp- 01.01.1970 (используется в Vostok Hercules)
Экземпляры данных классов могут быть созданы из количества тиков или следующими методами:
Duration.toTicks()Instant.toDotNetTime()Instant.toUuidTime()Instant.toEpochTicks()
Беззнаковое представление 8 бит из Byte
Беззнаковое представление 16 бит из Short
Byte.toHexString()ByteArray.toHexString()иbyteArrayOfHex()StringBuilder.appendHexByte()
Представляет выбор между ошибочным состоянием (L) и успешным получением результата (R).
Интерфейс Encoding предоставляет методы для конвертации значений одного типа в другой и обратно.
./gradlew build