Package-level declarations

Types

Link copied to clipboard
interface Patch

Patch interface that allows easy creation of patch operations.

Link copied to clipboard
sealed class PatchOp<T : Any>

JSON Merge Patch operations: none, set, delete

Link copied to clipboard
interface UpdateOp<T : Any>

JSON Merge Patch update operations: none, set

Functions

Link copied to clipboard
inline fun <T : Any> UpdateOp<T>.getOrDefault(current: () -> T): T

Retrieves a value depending on the patch operation where none is mapped to the value returned by given the current function.

Link copied to clipboard
inline fun <T : Any> PatchOp<T>.getOrDefaultNullifyingDelete(current: () -> T?): T?

Retrieves a value depending on the patch operation where delete is mapped to null and none is mapped to the value returned by given the current function.

Link copied to clipboard
inline fun <T : Any> PatchOp<T>.getOrElse(block: (deleted: Boolean) -> Nothing): T

Retrieves a value for set operations and calls the block function for delete and none operations.

Link copied to clipboard
inline fun <T : Any, R : Any> PatchOp<T>.map(transform: (T) -> R): PatchOp<R>

Transforms the value for set operations by calling the provided transform function and creating a new set operation; all other patch operations (delete and none) are returned as is.

inline fun <T : Any, R : Any> UpdateOp<T>.map(transform: (T) -> R): UpdateOp<R>

Transforms the value for set operations by calling the provided transform function and creating a new set operation; none operations are returned as is.

Link copied to clipboard
inline fun <T : Any> PatchOp<T>.use(block: (T?) -> Unit)

Allows using a patch operation by passing an appropriate value to the given block function.

inline fun <T : Any> UpdateOp<T>.use(block: (T) -> Unit)

Allows using a patch update operation by passing an appropriate value to the given block function.