Skip to content

Commit c07f996

Browse files
committed
KTOR-9037 Make formData inline function
1 parent a741975 commit c07f996

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

ktor-client/ktor-client-core/api/ktor-client-core.api

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,6 +1417,7 @@ public final class io/ktor/client/request/forms/ChannelProvider {
14171417
}
14181418

14191419
public final class io/ktor/client/request/forms/FormBuilder {
1420+
public fun <init> ()V
14201421
public final fun append (Lio/ktor/client/request/forms/FormPart;)V
14211422
public final fun append (Ljava/lang/String;Lio/ktor/client/request/forms/ChannelProvider;Lio/ktor/http/Headers;)V
14221423
public final fun append (Ljava/lang/String;Lio/ktor/client/request/forms/InputProvider;Lio/ktor/http/Headers;)V
@@ -1440,6 +1441,7 @@ public final class io/ktor/client/request/forms/FormBuilder {
14401441
public static synthetic fun append$default (Lio/ktor/client/request/forms/FormBuilder;Ljava/lang/String;[Ljava/lang/String;Lio/ktor/http/Headers;ILjava/lang/Object;)V
14411442
public final fun appendInput (Ljava/lang/String;Lio/ktor/http/Headers;Ljava/lang/Long;Lkotlin/jvm/functions/Function0;)V
14421443
public static synthetic fun appendInput$default (Lio/ktor/client/request/forms/FormBuilder;Ljava/lang/String;Lio/ktor/http/Headers;Ljava/lang/Long;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
1444+
public final fun build ()Ljava/util/List;
14431445
}
14441446

14451447
public final class io/ktor/client/request/forms/FormBuildersKt {

ktor-client/ktor-client-core/api/ktor-client-core.klib.api

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -889,6 +889,8 @@ final class io.ktor.client.request.forms/ChannelProvider { // io.ktor.client.req
889889
}
890890

891891
final class io.ktor.client.request.forms/FormBuilder { // io.ktor.client.request.forms/FormBuilder|null[0]
892+
constructor <init>() // io.ktor.client.request.forms/FormBuilder.<init>|<init>(){}[0]
893+
892894
final fun <#A1: kotlin/Any> append(io.ktor.client.request.forms/FormPart<#A1>) // io.ktor.client.request.forms/FormBuilder.append|append(io.ktor.client.request.forms.FormPart<0:0>){0§<kotlin.Any>}[0]
893895
final fun <#A1: kotlin/Any> append(kotlin/String, #A1, io.ktor.http/Headers = ...) // io.ktor.client.request.forms/FormBuilder.append|append(kotlin.String;0:0;io.ktor.http.Headers){0§<kotlin.Any>}[0]
894896
final fun append(kotlin/String, io.ktor.client.request.forms/ChannelProvider, io.ktor.http/Headers = ...) // io.ktor.client.request.forms/FormBuilder.append|append(kotlin.String;io.ktor.client.request.forms.ChannelProvider;io.ktor.http.Headers){}[0]
@@ -901,6 +903,7 @@ final class io.ktor.client.request.forms/FormBuilder { // io.ktor.client.request
901903
final fun append(kotlin/String, kotlin/String, io.ktor.http/Headers = ...) // io.ktor.client.request.forms/FormBuilder.append|append(kotlin.String;kotlin.String;io.ktor.http.Headers){}[0]
902904
final fun append(kotlin/String, kotlinx.io/Source, io.ktor.http/Headers = ...) // io.ktor.client.request.forms/FormBuilder.append|append(kotlin.String;kotlinx.io.Source;io.ktor.http.Headers){}[0]
903905
final fun appendInput(kotlin/String, io.ktor.http/Headers = ..., kotlin/Long? = ..., kotlin/Function0<kotlinx.io/Source>) // io.ktor.client.request.forms/FormBuilder.appendInput|appendInput(kotlin.String;io.ktor.http.Headers;kotlin.Long?;kotlin.Function0<kotlinx.io.Source>){}[0]
906+
final fun build(): kotlin.collections/List<io.ktor.client.request.forms/FormPart<*>> // io.ktor.client.request.forms/FormBuilder.build|build(){}[0]
904907
}
905908

906909
final class io.ktor.client.request.forms/FormDataContent : io.ktor.http.content/OutgoingContent.ByteArrayContent { // io.ktor.client.request.forms/FormDataContent|null[0]
@@ -1515,7 +1518,6 @@ final fun io.ktor.client.plugins/SocketTimeoutException(io.ktor.client.request/H
15151518
final fun io.ktor.client.plugins/convertLongTimeoutToIntWithInfiniteAsZero(kotlin/Long): kotlin/Int // io.ktor.client.plugins/convertLongTimeoutToIntWithInfiniteAsZero|convertLongTimeoutToIntWithInfiniteAsZero(kotlin.Long){}[0]
15161519
final fun io.ktor.client.plugins/convertLongTimeoutToLongWithInfiniteAsZero(kotlin/Long): kotlin/Long // io.ktor.client.plugins/convertLongTimeoutToLongWithInfiniteAsZero|convertLongTimeoutToLongWithInfiniteAsZero(kotlin.Long){}[0]
15171520
final fun io.ktor.client.request.forms/formData(kotlin/Array<out io.ktor.client.request.forms/FormPart<*>>...): kotlin.collections/List<io.ktor.http.content/PartData> // io.ktor.client.request.forms/formData|formData(kotlin.Array<out|io.ktor.client.request.forms.FormPart<*>>...){}[0]
1518-
final fun io.ktor.client.request.forms/formData(kotlin/Function1<io.ktor.client.request.forms/FormBuilder, kotlin/Unit>): kotlin.collections/List<io.ktor.http.content/PartData> // io.ktor.client.request.forms/formData|formData(kotlin.Function1<io.ktor.client.request.forms.FormBuilder,kotlin.Unit>){}[0]
15191521
final fun io.ktor.client.request/request(kotlin/Function1<io.ktor.client.request/HttpRequestBuilder, kotlin/Unit>): io.ktor.client.request/HttpRequestBuilder // io.ktor.client.request/request|request(kotlin.Function1<io.ktor.client.request.HttpRequestBuilder,kotlin.Unit>){}[0]
15201522
final fun io.ktor.client.utils/buildHeaders(kotlin/Function1<io.ktor.http/HeadersBuilder, kotlin/Unit> = ...): io.ktor.http/Headers // io.ktor.client.utils/buildHeaders|buildHeaders(kotlin.Function1<io.ktor.http.HeadersBuilder,kotlin.Unit>){}[0]
15211523
final fun io.ktor.client/HttpClient(io.ktor.client.engine/HttpClientEngine, kotlin/Function1<io.ktor.client/HttpClientConfig<*>, kotlin/Unit>): io.ktor.client/HttpClient // io.ktor.client/HttpClient|HttpClient(io.ktor.client.engine.HttpClientEngine;kotlin.Function1<io.ktor.client.HttpClientConfig<*>,kotlin.Unit>){}[0]
@@ -1526,6 +1528,7 @@ final inline fun <#A: kotlin/Any?> io.ktor.client.plugins/unwrapRequestTimeoutEx
15261528
final inline fun <#A: reified kotlin/Any?> (io.ktor.client.plugins.sse/SSESessionWithDeserialization).io.ktor.client.plugins.sse/deserialize(io.ktor.sse/TypedServerSentEvent<kotlin/String>): #A? // io.ktor.client.plugins.sse/deserialize|deserialize@io.ktor.client.plugins.sse.SSESessionWithDeserialization(io.ktor.sse.TypedServerSentEvent<kotlin.String>){0§<kotlin.Any?>}[0]
15271529
final inline fun <#A: reified kotlin/Any?> (io.ktor.client.plugins.sse/SSESessionWithDeserialization).io.ktor.client.plugins.sse/deserialize(kotlin/String?): #A? // io.ktor.client.plugins.sse/deserialize|deserialize@io.ktor.client.plugins.sse.SSESessionWithDeserialization(kotlin.String?){0§<kotlin.Any?>}[0]
15281530
final inline fun <#A: reified kotlin/Any?> (io.ktor.client.request/HttpRequestBuilder).io.ktor.client.request/setBody(#A) // io.ktor.client.request/setBody|[email protected](0:0){0§<kotlin.Any?>}[0]
1531+
final inline fun io.ktor.client.request.forms/formData(kotlin/Function1<io.ktor.client.request.forms/FormBuilder, kotlin/Unit>): kotlin.collections/List<io.ktor.http.content/PartData> // io.ktor.client.request.forms/formData|formData(kotlin.Function1<io.ktor.client.request.forms.FormBuilder,kotlin.Unit>){}[0]
15291532
final suspend fun (io.ktor.client.call/HttpClientCall).io.ktor.client.call/save(): io.ktor.client.call/HttpClientCall // io.ktor.client.call/save|[email protected](){}[0]
15301533
final suspend fun (io.ktor.client.plugins.cache.storage/CacheStorage).io.ktor.client.plugins.cache.storage/store(io.ktor.client.statement/HttpResponse): io.ktor.client.plugins.cache.storage/CachedResponseData // io.ktor.client.plugins.cache.storage/store|[email protected](io.ktor.client.statement.HttpResponse){}[0]
15311534
final suspend fun (io.ktor.client.plugins.cache.storage/CacheStorage).io.ktor.client.plugins.cache.storage/store(io.ktor.client.statement/HttpResponse, kotlin.collections/Map<kotlin/String, kotlin/String>, kotlin/Boolean = ...): io.ktor.client.plugins.cache.storage/CachedResponseData // io.ktor.client.plugins.cache.storage/store|[email protected](io.ktor.client.statement.HttpResponse;kotlin.collections.Map<kotlin.String,kotlin.String>;kotlin.Boolean){}[0]

ktor-client/ktor-client-core/common/src/io/ktor/client/request/forms/formDsl.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
/*
2-
* Copyright 2014-2021 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
3-
*/
2+
* Copyright 2014-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
3+
*/
44

55
package io.ktor.client.request.forms
66

77
import io.ktor.http.*
88
import io.ktor.http.content.*
99
import io.ktor.utils.io.*
1010
import io.ktor.utils.io.core.*
11-
import kotlinx.io.*
1211
import kotlinx.io.Buffer
13-
import kotlin.contracts.*
12+
import kotlinx.io.Sink
13+
import kotlinx.io.Source
14+
import kotlin.contracts.ExperimentalContracts
15+
import kotlin.contracts.InvocationKind
16+
import kotlin.contracts.contract
1417

1518
/**
1619
* A multipart form item. Use it to build a form in client.
@@ -83,15 +86,15 @@ public fun formData(vararg values: FormPart<*>): List<PartData> {
8386
*
8487
* [Report a problem](https://ktor.io/feedback/?fqname=io.ktor.client.request.forms.formData)
8588
*/
86-
public fun formData(block: FormBuilder.() -> Unit): List<PartData> =
89+
public inline fun formData(block: FormBuilder.() -> Unit): List<PartData> =
8790
formData(*FormBuilder().apply(block).build().toTypedArray())
8891

8992
/**
9093
* A form builder type used in the [formData] builder function.
9194
*
9295
* [Report a problem](https://ktor.io/feedback/?fqname=io.ktor.client.request.forms.FormBuilder)
9396
*/
94-
public class FormBuilder internal constructor() {
97+
public class FormBuilder @PublishedApi internal constructor() {
9598
private val parts = mutableListOf<FormPart<*>>()
9699

97100
/**
@@ -209,6 +212,7 @@ public class FormBuilder internal constructor() {
209212
parts += part
210213
}
211214

215+
@PublishedApi
212216
internal fun build(): List<FormPart<*>> = parts
213217
}
214218

0 commit comments

Comments
 (0)