Общий вспомогательный код для библиотек и приложений на 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