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

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

public extension ContactUINameKey {
  /**
   * Get a ContactUINameKey for the given String value, or
   * return `nil` if the given value was invalid/unknown.
   */
  init?(fromString string: String) {
    switch string {
      case "namePrefix":
        self = .nameprefix
      case "givenName":
        self = .givenname
      case "middleName":
        self = .middlename
      case "familyName":
        self = .familyname
      case "nameSuffix":
        self = .namesuffix
      case "nickname":
        self = .nickname
      case "organizationName":
        self = .organizationname
      case "jobTitle":
        self = .jobtitle
      default:
        return nil
    }
  }

  /**
   * Get the String value this ContactUINameKey represents.
   */
  var stringValue: String {
    switch self {
      case .nameprefix:
        return "namePrefix"
      case .givenname:
        return "givenName"
      case .middlename:
        return "middleName"
      case .familyname:
        return "familyName"
      case .namesuffix:
        return "nameSuffix"
      case .nickname:
        return "nickname"
      case .organizationname:
        return "organizationName"
      case .jobtitle:
        return "jobTitle"
    }
  }
}
