mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-10-10 18:00:33 +00:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
5749e00377 | |||
ef73c24a0c | |||
94717ee351 | |||
9a18ded65b | |||
b23220f491 | |||
6e6bb03246 | |||
1ae6bae3b8 | |||
57b7797ea4 |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -1,5 +1,21 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.5.21
|
||||||
|
|
||||||
|
* `Versions`
|
||||||
|
* `Klock`: `2.3.1` -> `2.3.2`
|
||||||
|
* `Serialization`
|
||||||
|
* `Typed Serializer`:
|
||||||
|
* `TypedSerializer` Descriptor serial name has been fixed
|
||||||
|
|
||||||
|
## 0.5.20
|
||||||
|
|
||||||
|
* `Repos`:
|
||||||
|
* `Common`
|
||||||
|
* `Android`:
|
||||||
|
* `*OrNull` analogs of `Cursor.get*(String)` extensions have been added
|
||||||
|
* Extensions `Cursor.getFloat` and `Cursor.getFloatOrNull` have been added
|
||||||
|
|
||||||
## 0.5.19
|
## 0.5.19
|
||||||
|
|
||||||
* `LanguageCode`:
|
* `LanguageCode`:
|
||||||
|
@@ -14,7 +14,7 @@ kotlin_exposed_version=0.33.1
|
|||||||
|
|
||||||
ktor_version=1.6.2
|
ktor_version=1.6.2
|
||||||
|
|
||||||
klockVersion=2.3.1
|
klockVersion=2.3.2
|
||||||
|
|
||||||
github_release_plugin_version=2.2.12
|
github_release_plugin_version=2.2.12
|
||||||
|
|
||||||
@@ -45,5 +45,5 @@ dokka_version=1.5.0
|
|||||||
# Project data
|
# Project data
|
||||||
|
|
||||||
group=dev.inmo
|
group=dev.inmo
|
||||||
version=0.5.19
|
version=0.5.21
|
||||||
android_code_version=60
|
android_code_version=62
|
||||||
|
@@ -2,6 +2,8 @@ package dev.inmo.micro_utils.repos
|
|||||||
|
|
||||||
import android.database.Cursor
|
import android.database.Cursor
|
||||||
import android.database.sqlite.SQLiteDatabase
|
import android.database.sqlite.SQLiteDatabase
|
||||||
|
import androidx.core.database.*
|
||||||
|
import dev.inmo.micro_utils.repos.getLongOrNull
|
||||||
|
|
||||||
fun createTableQuery(
|
fun createTableQuery(
|
||||||
tableName: String,
|
tableName: String,
|
||||||
@@ -32,6 +34,11 @@ fun SQLiteDatabase.createTable(
|
|||||||
fun Cursor.getString(columnName: String): String = getString(
|
fun Cursor.getString(columnName: String): String = getString(
|
||||||
getColumnIndexOrThrow(columnName)
|
getColumnIndexOrThrow(columnName)
|
||||||
)
|
)
|
||||||
|
fun Cursor.getStringOrNull(columnName: String): String? {
|
||||||
|
return getStringOrNull(
|
||||||
|
getColumnIndex(columnName).takeIf { it != -1 } ?: return null
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
@@ -39,6 +46,11 @@ fun Cursor.getString(columnName: String): String = getString(
|
|||||||
fun Cursor.getShort(columnName: String): Short = getShort(
|
fun Cursor.getShort(columnName: String): Short = getShort(
|
||||||
getColumnIndexOrThrow(columnName)
|
getColumnIndexOrThrow(columnName)
|
||||||
)
|
)
|
||||||
|
fun Cursor.getShortOrNull(columnName: String): Short? {
|
||||||
|
return getShortOrNull(
|
||||||
|
getColumnIndex(columnName).takeIf { it != -1 } ?: return null
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
@@ -46,6 +58,11 @@ fun Cursor.getShort(columnName: String): Short = getShort(
|
|||||||
fun Cursor.getLong(columnName: String): Long = getLong(
|
fun Cursor.getLong(columnName: String): Long = getLong(
|
||||||
getColumnIndexOrThrow(columnName)
|
getColumnIndexOrThrow(columnName)
|
||||||
)
|
)
|
||||||
|
fun Cursor.getLongOrNull(columnName: String): Long? {
|
||||||
|
return getLongOrNull(
|
||||||
|
getColumnIndex(columnName).takeIf { it != -1 } ?: return null
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
@@ -53,6 +70,23 @@ fun Cursor.getLong(columnName: String): Long = getLong(
|
|||||||
fun Cursor.getInt(columnName: String): Int = getInt(
|
fun Cursor.getInt(columnName: String): Int = getInt(
|
||||||
getColumnIndexOrThrow(columnName)
|
getColumnIndexOrThrow(columnName)
|
||||||
)
|
)
|
||||||
|
fun Cursor.getIntOrNull(columnName: String): Int? {
|
||||||
|
return getIntOrNull(
|
||||||
|
getColumnIndex(columnName).takeIf { it != -1 } ?: return null
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws IllegalArgumentException
|
||||||
|
*/
|
||||||
|
fun Cursor.getFloat(columnName: String): Float = getFloat(
|
||||||
|
getColumnIndexOrThrow(columnName)
|
||||||
|
)
|
||||||
|
fun Cursor.getFloatOrNull(columnName: String): Float? {
|
||||||
|
return getFloatOrNull(
|
||||||
|
getColumnIndex(columnName).takeIf { it != -1 } ?: return null
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
@@ -60,6 +94,11 @@ fun Cursor.getInt(columnName: String): Int = getInt(
|
|||||||
fun Cursor.getDouble(columnName: String): Double = getDouble(
|
fun Cursor.getDouble(columnName: String): Double = getDouble(
|
||||||
getColumnIndexOrThrow(columnName)
|
getColumnIndexOrThrow(columnName)
|
||||||
)
|
)
|
||||||
|
fun Cursor.getDoubleOrNull(columnName: String): Double? {
|
||||||
|
return getDoubleOrNull(
|
||||||
|
getColumnIndex(columnName).takeIf { it != -1 } ?: return null
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
fun SQLiteDatabase.select(
|
fun SQLiteDatabase.select(
|
||||||
table: String,
|
table: String,
|
||||||
|
@@ -8,11 +8,23 @@ import kotlin.reflect.KClass
|
|||||||
|
|
||||||
open class TypedSerializer<T : Any>(
|
open class TypedSerializer<T : Any>(
|
||||||
kClass: KClass<T>,
|
kClass: KClass<T>,
|
||||||
presetSerializers: Map<String, KSerializer<out T>> = emptyMap()
|
presetSerializers: Map<String, KSerializer<out T>> = emptyMap(),
|
||||||
) : KSerializer<T> {
|
) : KSerializer<T> {
|
||||||
protected val serializers = presetSerializers.toMutableMap()
|
protected val serializers = presetSerializers.toMutableMap()
|
||||||
@InternalSerializationApi
|
@InternalSerializationApi
|
||||||
open override val descriptor: SerialDescriptor = buildSerialDescriptor(
|
override val descriptor: SerialDescriptor = buildSerialDescriptor(
|
||||||
|
"TypedSerializer",
|
||||||
|
SerialKind.CONTEXTUAL
|
||||||
|
) {
|
||||||
|
element("type", String.serializer().descriptor)
|
||||||
|
element("value", ContextualSerializer(kClass).descriptor)
|
||||||
|
}
|
||||||
|
@InternalSerializationApi
|
||||||
|
@Deprecated(
|
||||||
|
"This descriptor was deprecated due to incorrect serial name. You may use it in case something require it, " +
|
||||||
|
"but it is strongly recommended to migrate onto new descriptor"
|
||||||
|
)
|
||||||
|
protected val oldDescriptor: SerialDescriptor = buildSerialDescriptor(
|
||||||
"TextSourceSerializer",
|
"TextSourceSerializer",
|
||||||
SerialKind.CONTEXTUAL
|
SerialKind.CONTEXTUAL
|
||||||
) {
|
) {
|
||||||
|
Reference in New Issue
Block a user