/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RSPRO"
 * 	found in "../../asn1/RSPRO.asn"
 */

#ifndef	_ErrorString_H_
#define	_ErrorString_H_


#include <asn_application.h>

/* Including external dependencies */
#include <IA5String.h>

#ifdef __cplusplus
extern "C" {
#endif

/* ErrorString */
typedef IA5String_t	 ErrorString_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ErrorString;
asn_struct_free_f ErrorString_free;
asn_struct_print_f ErrorString_print;
asn_constr_check_f ErrorString_constraint;
ber_type_decoder_f ErrorString_decode_ber;
der_type_encoder_f ErrorString_encode_der;
xer_type_decoder_f ErrorString_decode_xer;
xer_type_encoder_f ErrorString_encode_xer;

#ifdef __cplusplus
}
#endif

#endif	/* _ErrorString_H_ */
#include <asn_internal.h>
