forked from GitLiveApp/firebase-kotlin-sdk
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathEncodeDecodeSettings.kt
43 lines (35 loc) · 1.51 KB
/
EncodeDecodeSettings.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package dev.gitlive.firebase.internal
import dev.gitlive.firebase.DecodeSettings
import dev.gitlive.firebase.EncodeDecodeSettingsBuilder
import dev.gitlive.firebase.EncodeSettings
import kotlinx.serialization.modules.EmptySerializersModule
import kotlinx.serialization.modules.SerializersModule
@PublishedApi
internal data class EncodeSettingsImpl internal constructor(
override val encodeDefaults: Boolean,
override val serializersModule: SerializersModule,
) : EncodeSettings {
@PublishedApi
internal class Builder : EncodeSettings.Builder {
override var encodeDefaults: Boolean = true
override var serializersModule: SerializersModule = EmptySerializersModule()
}
}
@PublishedApi
internal class DecodeSettingsImpl internal constructor(
override val serializersModule: SerializersModule = EmptySerializersModule(),
) : DecodeSettings {
@PublishedApi
internal class Builder : DecodeSettings.Builder {
override var serializersModule: SerializersModule = EmptySerializersModule()
}
}
@PublishedApi
internal class EncodeDecodeSettingsBuilderImpl : EncodeDecodeSettingsBuilder {
override var encodeDefaults: Boolean = true
override var serializersModule: SerializersModule = EmptySerializersModule()
}
@PublishedApi
internal fun EncodeSettings.Builder.buildEncodeSettings(): EncodeSettings = EncodeSettingsImpl(encodeDefaults, serializersModule)
@PublishedApi
internal fun DecodeSettings.Builder.buildDecodeSettings(): DecodeSettings = DecodeSettingsImpl(serializersModule)