// Generated from "j2ktnewobjcname/EnumExample.java"
@file:OptIn(ExperimentalObjCName::class)
@file:Suppress(
 "ALWAYS_NULL",
 "PARAMETER_NAME_CHANGED_ON_OVERRIDE",
 "SENSELESS_COMPARISON",
 "UNCHECKED_CAST",
 "UNNECESSARY_LATEINIT",
 "UNNECESSARY_NOT_NULL_ASSERTION",
 "UNREACHABLE_CODE",
 "UNUSED_ANONYMOUS_PARAMETER",
 "UNUSED_PARAMETER",
 "UNUSED_VARIABLE",
 "USELESS_CAST",
 "VARIABLE_IN_SINGLETON_WITHOUT_THREAD_LOCAL",
 "VARIABLE_WITH_REDUNDANT_INITIALIZER",
 "REDUNDANT_ELSE_IN_WHEN")

package j2ktnewobjcname

import javaemul.lang.*
import kotlin.Int
import kotlin.OptIn
import kotlin.Suppress
import kotlin.experimental.ExperimentalObjCName
import kotlin.jvm.JvmStatic
import kotlin.native.ObjCName

enum class EnumExample {
 @ObjCName("SINGLEPART")
 SINGLEPART,
 @ObjCName("TWO_PARTS")
 TWO_PARTS,
 @ObjCName("EVEN_MORE_PARTS")
 EVEN_MORE_PARTS,
 @ObjCName("singlepart")
 singlepart,
 @ObjCName("twoParts")
 twoParts,
 @ObjCName("evenMoreParts")
 evenMoreParts,
 @ObjCName("single_part")
 single_part,
 @ObjCName("two_parts")
 two_parts,
 @ObjCName("even_more_parts")
 even_more_parts,
 @ObjCName("X_Y_Z")
 X_Y_Z,
 @ObjCName("xyz")
 xyz,
 @ObjCName("x_y_z")
 x_y_z,
 @ObjCName("VEC_X_Y_Z")
 VEC_X_Y_Z,
 @ObjCName("VEC_XYZ")
 VEC_XYZ,
 @ObjCName("vecXyz")
 vecXyz,
 @ObjCName("vecXYZ")
 vecXYZ,
 @ObjCName("val")
 `val`,
 @ObjCName("var")
 `var`,
 @ObjCName("fun")
 `fun`,
 @ObjCName("alloc__")
 alloc,
 @ObjCName("init__")
 `init`,
 @ObjCName("initialize__")
 initialize,
 @ObjCName("allocFoo")
 allocFoo,
 @ObjCName("initFoo")
 initFoo,
 @ObjCName("newFoo")
 newFoo,
 @ObjCName("copyFoo")
 copyFoo,
 @ObjCName("mutableCopyFoo")
 mutableCopyFoo,
 @ObjCName("register__")
 register,
 @ObjCName("struct__")
 struct,
 @ObjCName("NULL__")
 NULL,
 @ObjCName("YES__")
 YES,
 @ObjCName("NO__")
 NO;

 companion object {
  @JvmStatic
  fun withOrdinal(ordinal: Int): EnumExample? {
   return EnumExample.values()[ordinal]
  }
 }

 enum class PackagePrivateEnum {
  @ObjCName("FOO")
  FOO;
 }

 enum class ProtectedEnum {
  @ObjCName("FOO")
  FOO;
 }

 enum class PrivateEnum {
  @ObjCName("FOO")
  FOO;
 }
}
