Skip to content
Novus Examples
kt1.3 KB

Kotlin — Order model (data classes, sealed types, when)

A realistic Kotlin snippet with data classes, an enum, a sealed result interface, extension functions, and when expressions — for testing highlighters, the Kotlin compiler, ktlint, and parsers.

Preview — first 42 lineskt
// An order model in Kotlin: data classes, an enum, a sealed result type,
// extension functions, and when expressions.

enum class Status { PENDING, SHIPPED, DELIVERED }

data class LineItem(val name: String, val qty: Int, val unitCents: Int) {
    val totalCents: Int get() = qty * unitCents
}

data class Order(val id: String, val status: Status, val items: List<LineItem>)

sealed interface Result<out T> {
    data class Ok<T>(val value: T) : Result<T>
    data class Err(val message: String) : Result<Nothing>
}

fun Order.totalCents(): Int = items.sumOf { it.totalCents }

fun Order.summary(): String = when (status) {
    Status.PENDING -> "Order $id is awaiting shipment"
    Status.SHIPPED -> "Order $id is on the way"
    Status.DELIVERED -> "Order $id was delivered"
}

fun checkout(order: Order): Result<Int> =
    if (order.items.isEmpty()) Result.Err("empty order")
    else Result.Ok(order.totalCents())

fun main() {
    val order = Order(
        id = "A-1001",
        status = Status.SHIPPED,
        items = listOf(LineItem("Notebook", 3, 450), LineItem("Pen", 10, 120)),
    )

    println(order.summary())
    when (val result = checkout(order)) {
        is Result.Ok -> println("total cents: ${result.value}")
        is Result.Err -> println("error: ${result.message}")
    }
}

Specifications

Language
Kotlin
Kind
realistic snippet
Lines
41
Encoding
UTF-8
Line Endings
LF

What is a .kt file?

Kotlin (.kt) is a plain-text source file for the Kotlin programming language — a statically typed, JVM language from JetBrains that interoperates with Java. It is the preferred language for modern Android development and features null safety, data classes, extension functions, and concise syntax.

How to use this file

Use an example .kt file to test syntax highlighters, the Kotlin compiler, linters and formatters (ktlint), and parser or language-detection tooling.

Generated by generation/code_samples.py. Free for any use, no attribution required — license.