/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-IEs"
 * 	found in "Spec/e2_and_x2-combined-and-minimized.asn1"
 * 	`asn1c -pdu=auto -fincludes-quoted -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example`
 */

#ifndef	_NSSS_NumOccasionDifferentPrecoder_H_
#define	_NSSS_NumOccasionDifferentPrecoder_H_


#include "asn_application.h"

/* Including external dependencies */
#include "NativeEnumerated.h"

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum NSSS_NumOccasionDifferentPrecoder {
	NSSS_NumOccasionDifferentPrecoder_two	= 0,
	NSSS_NumOccasionDifferentPrecoder_four	= 1,
	NSSS_NumOccasionDifferentPrecoder_eight	= 2
	/*
	 * Enumeration is extensible
	 */
} e_NSSS_NumOccasionDifferentPrecoder;

/* NSSS-NumOccasionDifferentPrecoder */
typedef long	 NSSS_NumOccasionDifferentPrecoder_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_NSSS_NumOccasionDifferentPrecoder;
asn_struct_free_f NSSS_NumOccasionDifferentPrecoder_free;
asn_struct_print_f NSSS_NumOccasionDifferentPrecoder_print;
asn_constr_check_f NSSS_NumOccasionDifferentPrecoder_constraint;
ber_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_ber;
der_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_der;
xer_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_xer;
xer_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_xer;
per_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_uper;
per_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_uper;
per_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_aper;
per_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _NSSS_NumOccasionDifferentPrecoder_H_ */
#include "asn_internal.h"
