///
/// Language.swift
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © 2025 Marc Rousavy @ Margelo
///

/**
 * Represents the JS union `Language`, backed by a C++ enum.
 */
public typealias Language = margelo.nitro.multipleimagepicker.Language

public extension Language {
  /**
   * Get a Language for the given String value, or
   * return `nil` if the given value was invalid/unknown.
   */
  init?(fromString string: String) {
    switch string {
      case "system":
        self = .system
      case "zh-Hans":
        self = .zhHans
      case "zh-Hant":
        self = .zhHant
      case "ja":
        self = .ja
      case "ko":
        self = .ko
      case "en":
        self = .en
      case "th":
        self = .th
      case "id":
        self = .id
      case "vi":
        self = .vi
      case "ru":
        self = .ru
      case "de":
        self = .de
      case "fr":
        self = .fr
      case "ar":
        self = .ar
      default:
        return nil
    }
  }

  /**
   * Get the String value this Language represents.
   */
  var stringValue: String {
    switch self {
      case .system:
        return "system"
      case .zhHans:
        return "zh-Hans"
      case .zhHant:
        return "zh-Hant"
      case .ja:
        return "ja"
      case .ko:
        return "ko"
      case .en:
        return "en"
      case .th:
        return "th"
      case .id:
        return "id"
      case .vi:
        return "vi"
      case .ru:
        return "ru"
      case .de:
        return "de"
      case .fr:
        return "fr"
      case .ar:
        return "ar"
    }
  }
}
