Browse Source

Remove unnecessary reification from Kotlin R2DBC extensions.

This allows calling the extensions from generic code that has erased types.

Original pull request #1496
3.0.x
Oleg Oshmyan 3 years ago committed by Jens Schauder
parent
commit
c4741dece2
No known key found for this signature in database
GPG Key ID: 9537B67540F0A581
  1. 3
      spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveInsertOperationExtensions.kt
  2. 9
      spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveSelectOperationExtensions.kt

3
spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveInsertOperationExtensions.kt

@ -21,6 +21,7 @@ import kotlinx.coroutines.reactive.awaitSingle
* Extensions for [ReactiveInsertOperation]. * Extensions for [ReactiveInsertOperation].
* *
* @author Mark Paluch * @author Mark Paluch
* @author Oleg Oshmyan
* @since 1.1 * @since 1.1
*/ */
@ -33,5 +34,5 @@ inline fun <reified T : Any> ReactiveInsertOperation.insert(): ReactiveInsertOpe
/** /**
* Coroutines variant of [ReactiveInsertOperation.TerminatingInsert.using]. * Coroutines variant of [ReactiveInsertOperation.TerminatingInsert.using].
*/ */
suspend inline fun <reified T : Any> ReactiveInsertOperation.TerminatingInsert<T>.usingAndAwait(o: T): T = suspend fun <T : Any> ReactiveInsertOperation.TerminatingInsert<T>.usingAndAwait(o: T): T =
using(o).awaitSingle() using(o).awaitSingle()

9
spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveSelectOperationExtensions.kt

@ -24,6 +24,7 @@ import kotlinx.coroutines.reactive.awaitSingle
* Extensions for [ReactiveSelectOperation]. * Extensions for [ReactiveSelectOperation].
* *
* @author Mark Paluch * @author Mark Paluch
* @author Oleg Oshmyan
* @since 1.1 * @since 1.1
*/ */
@ -42,25 +43,25 @@ inline fun <reified T : Any> ReactiveSelectOperation.SelectWithProjection<*>.asT
/** /**
* Non-nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.one]. * Non-nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.one].
*/ */
suspend inline fun <reified T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitOne(): T = suspend fun <T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitOne(): T =
one().awaitSingle() one().awaitSingle()
/** /**
* Nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.one]. * Nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.one].
*/ */
suspend inline fun <reified T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitOneOrNull(): T? = suspend fun <T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitOneOrNull(): T? =
one().awaitFirstOrNull() one().awaitFirstOrNull()
/** /**
* Non-nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.first]. * Non-nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.first].
*/ */
suspend inline fun <reified T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitFirst(): T = suspend fun <T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitFirst(): T =
first().awaitSingle() first().awaitSingle()
/** /**
* Nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.first]. * Nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.first].
*/ */
suspend inline fun <reified T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitFirstOrNull(): T? = suspend fun <T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitFirstOrNull(): T? =
first().awaitFirstOrNull() first().awaitFirstOrNull()
/** /**

Loading…
Cancel
Save