//autogenerated:yes
//nolint:revive,misspell,govet,lll,dupl,gocritic
package uavionix

import (
	"fmt"
	"strconv"
)

// State flags for ADS-B transponder status report
type UAVIONIX_ADSB_OUT_STATUS_NIC_NACP uint64

const (
	UAVIONIX_ADSB_NIC_CR_20_NM     UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 1
	UAVIONIX_ADSB_NIC_CR_8_NM      UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 2
	UAVIONIX_ADSB_NIC_CR_4_NM      UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 3
	UAVIONIX_ADSB_NIC_CR_2_NM      UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 4
	UAVIONIX_ADSB_NIC_CR_1_NM      UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 5
	UAVIONIX_ADSB_NIC_CR_0_3_NM    UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 6
	UAVIONIX_ADSB_NIC_CR_0_2_NM    UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 7
	UAVIONIX_ADSB_NIC_CR_0_1_NM    UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 8
	UAVIONIX_ADSB_NIC_CR_75_M      UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 9
	UAVIONIX_ADSB_NIC_CR_25_M      UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 10
	UAVIONIX_ADSB_NIC_CR_7_5_M     UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 11
	UAVIONIX_ADSB_NACP_EPU_10_NM   UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 16
	UAVIONIX_ADSB_NACP_EPU_4_NM    UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 32
	UAVIONIX_ADSB_NACP_EPU_2_NM    UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 48
	UAVIONIX_ADSB_NACP_EPU_1_NM    UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 64
	UAVIONIX_ADSB_NACP_EPU_0_5_NM  UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 80
	UAVIONIX_ADSB_NACP_EPU_0_3_NM  UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 96
	UAVIONIX_ADSB_NACP_EPU_0_1_NM  UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 112
	UAVIONIX_ADSB_NACP_EPU_0_05_NM UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 128
	UAVIONIX_ADSB_NACP_EPU_30_M    UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 144
	UAVIONIX_ADSB_NACP_EPU_10_M    UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 160
	UAVIONIX_ADSB_NACP_EPU_3_M     UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = 176
)

var value_to_label_UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = map[UAVIONIX_ADSB_OUT_STATUS_NIC_NACP]string{
	UAVIONIX_ADSB_NIC_CR_20_NM:     "UAVIONIX_ADSB_NIC_CR_20_NM",
	UAVIONIX_ADSB_NIC_CR_8_NM:      "UAVIONIX_ADSB_NIC_CR_8_NM",
	UAVIONIX_ADSB_NIC_CR_4_NM:      "UAVIONIX_ADSB_NIC_CR_4_NM",
	UAVIONIX_ADSB_NIC_CR_2_NM:      "UAVIONIX_ADSB_NIC_CR_2_NM",
	UAVIONIX_ADSB_NIC_CR_1_NM:      "UAVIONIX_ADSB_NIC_CR_1_NM",
	UAVIONIX_ADSB_NIC_CR_0_3_NM:    "UAVIONIX_ADSB_NIC_CR_0_3_NM",
	UAVIONIX_ADSB_NIC_CR_0_2_NM:    "UAVIONIX_ADSB_NIC_CR_0_2_NM",
	UAVIONIX_ADSB_NIC_CR_0_1_NM:    "UAVIONIX_ADSB_NIC_CR_0_1_NM",
	UAVIONIX_ADSB_NIC_CR_75_M:      "UAVIONIX_ADSB_NIC_CR_75_M",
	UAVIONIX_ADSB_NIC_CR_25_M:      "UAVIONIX_ADSB_NIC_CR_25_M",
	UAVIONIX_ADSB_NIC_CR_7_5_M:     "UAVIONIX_ADSB_NIC_CR_7_5_M",
	UAVIONIX_ADSB_NACP_EPU_10_NM:   "UAVIONIX_ADSB_NACP_EPU_10_NM",
	UAVIONIX_ADSB_NACP_EPU_4_NM:    "UAVIONIX_ADSB_NACP_EPU_4_NM",
	UAVIONIX_ADSB_NACP_EPU_2_NM:    "UAVIONIX_ADSB_NACP_EPU_2_NM",
	UAVIONIX_ADSB_NACP_EPU_1_NM:    "UAVIONIX_ADSB_NACP_EPU_1_NM",
	UAVIONIX_ADSB_NACP_EPU_0_5_NM:  "UAVIONIX_ADSB_NACP_EPU_0_5_NM",
	UAVIONIX_ADSB_NACP_EPU_0_3_NM:  "UAVIONIX_ADSB_NACP_EPU_0_3_NM",
	UAVIONIX_ADSB_NACP_EPU_0_1_NM:  "UAVIONIX_ADSB_NACP_EPU_0_1_NM",
	UAVIONIX_ADSB_NACP_EPU_0_05_NM: "UAVIONIX_ADSB_NACP_EPU_0_05_NM",
	UAVIONIX_ADSB_NACP_EPU_30_M:    "UAVIONIX_ADSB_NACP_EPU_30_M",
	UAVIONIX_ADSB_NACP_EPU_10_M:    "UAVIONIX_ADSB_NACP_EPU_10_M",
	UAVIONIX_ADSB_NACP_EPU_3_M:     "UAVIONIX_ADSB_NACP_EPU_3_M",
}

var label_to_value_UAVIONIX_ADSB_OUT_STATUS_NIC_NACP = map[string]UAVIONIX_ADSB_OUT_STATUS_NIC_NACP{
	"UAVIONIX_ADSB_NIC_CR_20_NM":     UAVIONIX_ADSB_NIC_CR_20_NM,
	"UAVIONIX_ADSB_NIC_CR_8_NM":      UAVIONIX_ADSB_NIC_CR_8_NM,
	"UAVIONIX_ADSB_NIC_CR_4_NM":      UAVIONIX_ADSB_NIC_CR_4_NM,
	"UAVIONIX_ADSB_NIC_CR_2_NM":      UAVIONIX_ADSB_NIC_CR_2_NM,
	"UAVIONIX_ADSB_NIC_CR_1_NM":      UAVIONIX_ADSB_NIC_CR_1_NM,
	"UAVIONIX_ADSB_NIC_CR_0_3_NM":    UAVIONIX_ADSB_NIC_CR_0_3_NM,
	"UAVIONIX_ADSB_NIC_CR_0_2_NM":    UAVIONIX_ADSB_NIC_CR_0_2_NM,
	"UAVIONIX_ADSB_NIC_CR_0_1_NM":    UAVIONIX_ADSB_NIC_CR_0_1_NM,
	"UAVIONIX_ADSB_NIC_CR_75_M":      UAVIONIX_ADSB_NIC_CR_75_M,
	"UAVIONIX_ADSB_NIC_CR_25_M":      UAVIONIX_ADSB_NIC_CR_25_M,
	"UAVIONIX_ADSB_NIC_CR_7_5_M":     UAVIONIX_ADSB_NIC_CR_7_5_M,
	"UAVIONIX_ADSB_NACP_EPU_10_NM":   UAVIONIX_ADSB_NACP_EPU_10_NM,
	"UAVIONIX_ADSB_NACP_EPU_4_NM":    UAVIONIX_ADSB_NACP_EPU_4_NM,
	"UAVIONIX_ADSB_NACP_EPU_2_NM":    UAVIONIX_ADSB_NACP_EPU_2_NM,
	"UAVIONIX_ADSB_NACP_EPU_1_NM":    UAVIONIX_ADSB_NACP_EPU_1_NM,
	"UAVIONIX_ADSB_NACP_EPU_0_5_NM":  UAVIONIX_ADSB_NACP_EPU_0_5_NM,
	"UAVIONIX_ADSB_NACP_EPU_0_3_NM":  UAVIONIX_ADSB_NACP_EPU_0_3_NM,
	"UAVIONIX_ADSB_NACP_EPU_0_1_NM":  UAVIONIX_ADSB_NACP_EPU_0_1_NM,
	"UAVIONIX_ADSB_NACP_EPU_0_05_NM": UAVIONIX_ADSB_NACP_EPU_0_05_NM,
	"UAVIONIX_ADSB_NACP_EPU_30_M":    UAVIONIX_ADSB_NACP_EPU_30_M,
	"UAVIONIX_ADSB_NACP_EPU_10_M":    UAVIONIX_ADSB_NACP_EPU_10_M,
	"UAVIONIX_ADSB_NACP_EPU_3_M":     UAVIONIX_ADSB_NACP_EPU_3_M,
}

// MarshalText implements the encoding.TextMarshaler interface.
func (e UAVIONIX_ADSB_OUT_STATUS_NIC_NACP) MarshalText() ([]byte, error) {
	if name, ok := value_to_label_UAVIONIX_ADSB_OUT_STATUS_NIC_NACP[e]; ok {
		return []byte(name), nil
	}
	return []byte(strconv.Itoa(int(e))), nil
}

// UnmarshalText implements the encoding.TextUnmarshaler interface.
func (e *UAVIONIX_ADSB_OUT_STATUS_NIC_NACP) UnmarshalText(text []byte) error {
	if value, ok := label_to_value_UAVIONIX_ADSB_OUT_STATUS_NIC_NACP[string(text)]; ok {
		*e = value
	} else if value, err := strconv.Atoi(string(text)); err == nil {
		*e = UAVIONIX_ADSB_OUT_STATUS_NIC_NACP(value)
	} else {
		return fmt.Errorf("invalid label '%s'", text)
	}
	return nil
}

// String implements the fmt.Stringer interface.
func (e UAVIONIX_ADSB_OUT_STATUS_NIC_NACP) String() string {
	val, _ := e.MarshalText()
	return string(val)
}
