Skip to content

Commit 14a14f0

Browse files
committed
use NonEmptySet from Arrow-kt
1 parent 34836e0 commit 14a14f0

File tree

11 files changed

+33
-249
lines changed

11 files changed

+33
-249
lines changed

.idea/AndroidProjectSystem.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/kotlinc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations.xml

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
122 Bytes
Binary file not shown.

core/src/main/java/com/hoc/flowmvi/core/EitherNes.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.hoc.flowmvi.core
22

33
import arrow.core.Either
4+
import arrow.core.NonEmptySet
45
import arrow.core.left
6+
import arrow.core.nonEmptySetOf
57
import arrow.core.right
6-
import com.hoc.flowmvi.core.NonEmptySet.Companion.toNonEmptySetOrNull
8+
import arrow.core.toNonEmptySetOrNull
79
import kotlin.contracts.ExperimentalContracts
810
import kotlin.contracts.InvocationKind
911
import kotlin.contracts.contract
@@ -17,7 +19,7 @@ typealias EitherNes<E, A> = Either<NonEmptySet<E>, A>
1719
inline fun <A> A.rightNes(): EitherNes<Nothing, A> = this.right()
1820

1921
@Suppress("NOTHING_TO_INLINE")
20-
inline fun <E> E.leftNes(): EitherNes<E, Nothing> = NonEmptySet.of(this).left()
22+
inline fun <E> E.leftNes(): EitherNes<E, Nothing> = nonEmptySetOf(this).left()
2123

2224
@OptIn(ExperimentalContracts::class)
2325
inline fun <E, A, B, C, Z> Either.Companion.zipOrAccumulateNonEmptySet(

core/src/main/java/com/hoc/flowmvi/core/NonEmptySet.kt

Lines changed: 0 additions & 70 deletions
This file was deleted.

core/src/test/java/com/hoc/flowmvi/core/NonEmptySetTest.kt

Lines changed: 0 additions & 156 deletions
This file was deleted.

data/src/test/java/com/hoc/flowmvi/data/mapper/UserErrorMapperTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.hoc.flowmvi.data.mapper
22

3-
import com.hoc.flowmvi.core.NonEmptySet
3+
import arrow.core.nonEmptySetOf
44
import com.hoc.flowmvi.data.remote.ErrorResponse
55
import com.hoc.flowmvi.domain.model.UserError
66
import com.hoc.flowmvi.domain.model.UserValidationError
@@ -55,8 +55,8 @@ class UserErrorMapperTest {
5555
assertEquals(UserError.UserNotFound("1"), errorMapper(UserError.UserNotFound("1")))
5656
assertEquals(UserError.InvalidId("1"), errorMapper(UserError.InvalidId("1")))
5757
assertEquals(
58-
UserError.ValidationFailed(NonEmptySet.of(UserValidationError.INVALID_EMAIL_ADDRESS)),
59-
errorMapper(UserError.ValidationFailed(NonEmptySet.of(UserValidationError.INVALID_EMAIL_ADDRESS))),
58+
UserError.ValidationFailed(nonEmptySetOf(UserValidationError.INVALID_EMAIL_ADDRESS)),
59+
errorMapper(UserError.ValidationFailed(nonEmptySetOf(UserValidationError.INVALID_EMAIL_ADDRESS))),
6060
)
6161
assertEquals(UserError.ServerError, errorMapper(UserError.ServerError))
6262
assertEquals(UserError.Unexpected, errorMapper(UserError.Unexpected))

domain/src/main/java/com/hoc/flowmvi/domain/model/UserError.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.hoc.flowmvi.domain.model
22

3-
import com.hoc.flowmvi.core.NonEmptySet
3+
import arrow.core.NonEmptySet
44

55
sealed class UserError : Throwable() {
6-
object NetworkError : UserError()
6+
data object NetworkError : UserError() {
7+
private fun readResolve(): Any = NetworkError
8+
}
79

810
data class UserNotFound(
911
val id: String,
@@ -16,6 +18,12 @@ sealed class UserError : Throwable() {
1618
data class ValidationFailed(
1719
val errors: NonEmptySet<UserValidationError>,
1820
) : UserError()
19-
object ServerError : UserError()
20-
object Unexpected : UserError()
21+
22+
data object ServerError : UserError() {
23+
private fun readResolve(): Any = ServerError
24+
}
25+
26+
data object Unexpected : UserError() {
27+
private fun readResolve(): Any = Unexpected
28+
}
2129
}
Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.hoc.flowmvi.domain.model
22

3+
import arrow.core.NonEmptySet
4+
import arrow.core.toNonEmptySetOrNull
35
import com.hoc.flowmvi.core.EitherNes
4-
import com.hoc.flowmvi.core.NonEmptySet
5-
import com.hoc.flowmvi.core.NonEmptySet.Companion.toNonEmptySetOrNull
66
import com.hoc.flowmvi.core.leftNes
77

88
enum class UserValidationError {
@@ -14,14 +14,6 @@ enum class UserValidationError {
1414
val asLeftNes: EitherNes<UserValidationError, Nothing> = leftNes()
1515

1616
companion object {
17-
/**
18-
* Use this instead of [values()] for more performant.
19-
* See [KT-48872](https://youtrack.jetbrains.com/issue/KT-48872)
20-
*/
21-
@JvmField
22-
val VALUES: List<UserValidationError> = values().asList()
23-
24-
@JvmField
25-
val VALUES_SET: NonEmptySet<UserValidationError> = VALUES.toNonEmptySetOrNull()!!
17+
val VALUES_SET: NonEmptySet<UserValidationError> = UserValidationError.entries.toNonEmptySetOrNull()!!
2618
}
2719
}

0 commit comments

Comments
 (0)