Package-level declarations

Types

Link copied to clipboard
interface Enumish

Base type of the kinds generated for @Enumize hierarchies.

Link copied to clipboard
interface EnumishCompanion<out T : Enumish>

Hierarchy-wide operations over kinds — the enum-like static side (entries / valueOf), implemented by the companion object of each generated Enumish.

Link copied to clipboard
abstract class EnumishEntriesHolder<T : Enumish>

Base class of the per-hierarchy EntriesHolder the plugin generates: holds the entries list, its lazy initialization and the label lookup. User code normally goes through the generated Enumish companion (EnumishCompanion) instead of this type.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class EnumishLabel(val value: String)

Overrides the label of the annotated leaf declaration.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class Enumize(val labelCase: LabelCase = LabelCase.PROJECT_DEFAULT)

Instructs the sealed-class-enumizer compiler plugin to generate enum-like operations for the annotated sealed class or sealed interface.

Link copied to clipboard
interface Enumized<out T : Enumish>

Supertype injected into every @Enumize hierarchy root, connecting values to their kinds.

Link copied to clipboard

Case conversion applied to leaf simple names when deriving labels (Enumize.labelCase).

Properties

Link copied to clipboard

Shortcut for asEnumish().label — the counterpart of Enum.name on the value side.