Move type operations to another structure

Every type has free, print, check_constraints, ber_decoder, der_encoder,
xer_decoder, xer_encoder, uper_decoder, uper_encoder and outmost_tag
operations. We move them out to a separate structure asn_TYPE_operation_t.

Combined with previous logic simplification, these operations are based
on ASN.1 basic types, constructed types and string types. So we can
reduce the space occupied by asn_TYPE_descriptor_t variables.
diff --git a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
index a732d0e..924cad8 100644
--- a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
+++ b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
@@ -35,18 +35,8 @@
 asn_TYPE_descriptor_t asn_DEF_Int1 = {
 	"Int1",
 	"Int1",
-	NativeInteger_free,
-	NativeInteger_print,
-	NativeInteger_compare,
+	&asn_OP_NativeInteger,
 	NativeInteger_constraint,
-	NativeInteger_decode_ber,
-	NativeInteger_encode_der,
-	NativeInteger_decode_xer,
-	NativeInteger_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeInteger_decode_uper,
-	NativeInteger_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int1_tags_1,
 	sizeof(asn_DEF_Int1_tags_1)
 		/sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */
@@ -130,18 +120,8 @@
 asn_TYPE_descriptor_t asn_DEF_Int2 = {
 	"Int2",
 	"Int2",
-	NativeInteger_free,
-	NativeInteger_print,
-	NativeInteger_compare,
+	&asn_OP_NativeInteger,
 	Int2_constraint,
-	NativeInteger_decode_ber,
-	NativeInteger_encode_der,
-	NativeInteger_decode_xer,
-	NativeInteger_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeInteger_decode_uper,
-	NativeInteger_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int2_tags_1,
 	sizeof(asn_DEF_Int2_tags_1)
 		/sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */
@@ -225,18 +205,8 @@
 asn_TYPE_descriptor_t asn_DEF_Int3 = {
 	"Int3",
 	"Int3",
-	NativeInteger_free,
-	NativeInteger_print,
-	NativeInteger_compare,
+	&asn_OP_NativeInteger,
 	Int3_constraint,
-	NativeInteger_decode_ber,
-	NativeInteger_encode_der,
-	NativeInteger_decode_xer,
-	NativeInteger_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeInteger_decode_uper,
-	NativeInteger_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int3_tags_1,
 	sizeof(asn_DEF_Int3_tags_1)
 		/sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */
@@ -320,18 +290,8 @@
 asn_TYPE_descriptor_t asn_DEF_Int4 = {
 	"Int4",
 	"Int4",
-	NativeInteger_free,
-	NativeInteger_print,
-	NativeInteger_compare,
+	&asn_OP_NativeInteger,
 	Int4_constraint,
-	NativeInteger_decode_ber,
-	NativeInteger_encode_der,
-	NativeInteger_decode_xer,
-	NativeInteger_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeInteger_decode_uper,
-	NativeInteger_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int4_tags_1,
 	sizeof(asn_DEF_Int4_tags_1)
 		/sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */
@@ -415,18 +375,8 @@
 asn_TYPE_descriptor_t asn_DEF_Int5 = {
 	"Int5",
 	"Int5",
-	NativeInteger_free,
-	NativeInteger_print,
-	NativeInteger_compare,
+	&asn_OP_NativeInteger,
 	Int5_constraint,
-	NativeInteger_decode_ber,
-	NativeInteger_encode_der,
-	NativeInteger_decode_xer,
-	NativeInteger_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeInteger_decode_uper,
-	NativeInteger_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int5_tags_1,
 	sizeof(asn_DEF_Int5_tags_1)
 		/sizeof(asn_DEF_Int5_tags_1[0]), /* 1 */
@@ -509,18 +459,8 @@
 asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = {
 	"ExtensibleExtensions",
 	"ExtensibleExtensions",
-	NativeInteger_free,
-	NativeInteger_print,
-	NativeInteger_compare,
+	&asn_OP_NativeInteger,
 	ExtensibleExtensions_constraint,
-	NativeInteger_decode_ber,
-	NativeInteger_encode_der,
-	NativeInteger_decode_xer,
-	NativeInteger_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeInteger_decode_uper,
-	NativeInteger_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_ExtensibleExtensions_tags_1,
 	sizeof(asn_DEF_ExtensibleExtensions_tags_1)
 		/sizeof(asn_DEF_ExtensibleExtensions_tags_1[0]), /* 1 */
@@ -570,18 +510,8 @@
 asn_TYPE_descriptor_t asn_DEF_Str1 = {
 	"Str1",
 	"Str1",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	IA5String_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Str1_tags_1,
 	sizeof(asn_DEF_Str1_tags_1)
 		/sizeof(asn_DEF_Str1_tags_1[0]), /* 1 */
@@ -683,18 +613,8 @@
 asn_TYPE_descriptor_t asn_DEF_Str2 = {
 	"Str2",
 	"Str2",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	Str2_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Str2_tags_1,
 	sizeof(asn_DEF_Str2_tags_1)
 		/sizeof(asn_DEF_Str2_tags_1[0]), /* 1 */
@@ -820,18 +740,8 @@
 asn_TYPE_descriptor_t asn_DEF_Str3 = {
 	"Str3",
 	"Str3",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	Str3_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Str3_tags_1,
 	sizeof(asn_DEF_Str3_tags_1)
 		/sizeof(asn_DEF_Str3_tags_1[0]), /* 1 */
@@ -929,18 +839,8 @@
 asn_TYPE_descriptor_t asn_DEF_Str4 = {
 	"Str4",
 	"Str4",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	Str4_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Str4_tags_1,
 	sizeof(asn_DEF_Str4_tags_1)
 		/sizeof(asn_DEF_Str4_tags_1[0]), /* 1 */
@@ -1039,18 +939,8 @@
 asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
 	"PER-Visible",
 	"PER-Visible",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	PER_Visible_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_PER_Visible_tags_1,
 	sizeof(asn_DEF_PER_Visible_tags_1)
 		/sizeof(asn_DEF_PER_Visible_tags_1[0]), /* 1 */
@@ -1148,18 +1038,8 @@
 asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
 	"PER-Visible-2",
 	"PER-Visible-2",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	PER_Visible_2_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_PER_Visible_2_tags_1,
 	sizeof(asn_DEF_PER_Visible_2_tags_1)
 		/sizeof(asn_DEF_PER_Visible_2_tags_1[0]), /* 1 */
@@ -1257,18 +1137,8 @@
 asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
 	"Not-PER-Visible-1",
 	"Not-PER-Visible-1",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	Not_PER_Visible_1_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Not_PER_Visible_1_tags_1,
 	sizeof(asn_DEF_Not_PER_Visible_1_tags_1)
 		/sizeof(asn_DEF_Not_PER_Visible_1_tags_1[0]), /* 1 */
@@ -1366,18 +1236,8 @@
 asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = {
 	"Not-PER-Visible-2",
 	"Not-PER-Visible-2",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	Not_PER_Visible_2_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Not_PER_Visible_2_tags_1,
 	sizeof(asn_DEF_Not_PER_Visible_2_tags_1)
 		/sizeof(asn_DEF_Not_PER_Visible_2_tags_1[0]), /* 1 */
@@ -1475,18 +1335,8 @@
 asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = {
 	"Not-PER-Visible-3",
 	"Not-PER-Visible-3",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	Not_PER_Visible_3_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Not_PER_Visible_3_tags_1,
 	sizeof(asn_DEF_Not_PER_Visible_3_tags_1)
 		/sizeof(asn_DEF_Not_PER_Visible_3_tags_1[0]), /* 1 */
@@ -1587,18 +1437,8 @@
 asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = {
 	"SIZE-but-not-FROM",
 	"SIZE-but-not-FROM",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	SIZE_but_not_FROM_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_SIZE_but_not_FROM_tags_1,
 	sizeof(asn_DEF_SIZE_but_not_FROM_tags_1)
 		/sizeof(asn_DEF_SIZE_but_not_FROM_tags_1[0]), /* 1 */
@@ -1699,18 +1539,8 @@
 asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
 	"SIZE-and-FROM",
 	"SIZE-and-FROM",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	SIZE_and_FROM_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_SIZE_and_FROM_tags_1,
 	sizeof(asn_DEF_SIZE_and_FROM_tags_1)
 		/sizeof(asn_DEF_SIZE_and_FROM_tags_1[0]), /* 1 */
@@ -1808,18 +1638,8 @@
 asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
 	"Neither-SIZE-nor-FROM",
 	"Neither-SIZE-nor-FROM",
-	IA5String_free,
-	IA5String_print,
-	IA5String_compare,
+	&asn_OP_IA5String,
 	Neither_SIZE_nor_FROM_constraint,
-	IA5String_decode_ber,
-	IA5String_encode_der,
-	IA5String_decode_xer,
-	IA5String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	IA5String_decode_uper,
-	IA5String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Neither_SIZE_nor_FROM_tags_1,
 	sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1)
 		/sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1[0]), /* 1 */
@@ -1911,18 +1731,8 @@
 asn_TYPE_descriptor_t asn_DEF_Utf8_4 = {
 	"Utf8-4",
 	"Utf8-4",
-	UTF8String_free,
-	UTF8String_print,
-	UTF8String_compare,
+	&asn_OP_UTF8String,
 	Utf8_4_constraint,
-	UTF8String_decode_ber,
-	UTF8String_encode_der,
-	UTF8String_decode_xer,
-	UTF8String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	UTF8String_decode_uper,
-	UTF8String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Utf8_4_tags_1,
 	sizeof(asn_DEF_Utf8_4_tags_1)
 		/sizeof(asn_DEF_Utf8_4_tags_1[0]), /* 1 */
@@ -2042,18 +1852,8 @@
 asn_TYPE_descriptor_t asn_DEF_Utf8_3 = {
 	"Utf8-3",
 	"Utf8-3",
-	UTF8String_free,
-	UTF8String_print,
-	UTF8String_compare,
+	&asn_OP_UTF8String,
 	Utf8_3_constraint,
-	UTF8String_decode_ber,
-	UTF8String_encode_der,
-	UTF8String_decode_xer,
-	UTF8String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	UTF8String_decode_uper,
-	UTF8String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Utf8_3_tags_1,
 	sizeof(asn_DEF_Utf8_3_tags_1)
 		/sizeof(asn_DEF_Utf8_3_tags_1[0]), /* 1 */
@@ -2144,18 +1944,8 @@
 asn_TYPE_descriptor_t asn_DEF_Utf8_2 = {
 	"Utf8-2",
 	"Utf8-2",
-	UTF8String_free,
-	UTF8String_print,
-	UTF8String_compare,
+	&asn_OP_UTF8String,
 	Utf8_2_constraint,
-	UTF8String_decode_ber,
-	UTF8String_encode_der,
-	UTF8String_decode_xer,
-	UTF8String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	UTF8String_decode_uper,
-	UTF8String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Utf8_2_tags_1,
 	sizeof(asn_DEF_Utf8_2_tags_1)
 		/sizeof(asn_DEF_Utf8_2_tags_1[0]), /* 1 */
@@ -2205,18 +1995,8 @@
 asn_TYPE_descriptor_t asn_DEF_Utf8_1 = {
 	"Utf8-1",
 	"Utf8-1",
-	UTF8String_free,
-	UTF8String_print,
-	UTF8String_compare,
+	&asn_OP_UTF8String,
 	UTF8String_constraint,
-	UTF8String_decode_ber,
-	UTF8String_encode_der,
-	UTF8String_decode_xer,
-	UTF8String_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	UTF8String_decode_uper,
-	UTF8String_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Utf8_1_tags_1,
 	sizeof(asn_DEF_Utf8_1_tags_1)
 		/sizeof(asn_DEF_Utf8_1_tags_1[0]), /* 1 */
@@ -2328,18 +2108,8 @@
 asn_TYPE_descriptor_t asn_DEF_VisibleIdentifier = {
 	"VisibleIdentifier",
 	"VisibleIdentifier",
-	VisibleString_free,
-	VisibleString_print,
-	VisibleString_compare,
+	&asn_OP_VisibleString,
 	VisibleIdentifier_constraint,
-	VisibleString_decode_ber,
-	VisibleString_encode_der,
-	VisibleString_decode_xer,
-	VisibleString_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	VisibleString_decode_uper,
-	VisibleString_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_VisibleIdentifier_tags_1,
 	sizeof(asn_DEF_VisibleIdentifier_tags_1)
 		/sizeof(asn_DEF_VisibleIdentifier_tags_1[0]), /* 1 */
@@ -2571,18 +2341,8 @@
 asn_TYPE_descriptor_t asn_DEF_enum_c_6 = {
 	"enum-c",
 	"enum-c",
-	NativeEnumerated_free,
-	NativeEnumerated_print,
-	NativeEnumerated_compare,
+	&asn_OP_NativeEnumerated,
 	NativeEnumerated_constraint,
-	NativeEnumerated_decode_ber,
-	NativeEnumerated_encode_der,
-	NativeEnumerated_decode_xer,
-	NativeEnumerated_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeEnumerated_decode_uper,
-	NativeEnumerated_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_enum_c_tags_6,
 	sizeof(asn_DEF_enum_c_tags_6)
 		/sizeof(asn_DEF_enum_c_tags_6[0]), /* 1 */
@@ -2700,18 +2460,8 @@
 asn_TYPE_descriptor_t asn_DEF_Sequence = {
 	"Sequence",
 	"Sequence",
-	SEQUENCE_free,
-	SEQUENCE_print,
-	SEQUENCE_compare,
+	&asn_OP_SEQUENCE,
 	SEQUENCE_constraint,
-	SEQUENCE_decode_ber,
-	SEQUENCE_encode_der,
-	SEQUENCE_decode_xer,
-	SEQUENCE_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	SEQUENCE_decode_uper,
-	SEQUENCE_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Sequence_tags_1,
 	sizeof(asn_DEF_Sequence_tags_1)
 		/sizeof(asn_DEF_Sequence_tags_1[0]), /* 1 */
@@ -2786,18 +2536,8 @@
 asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
 	"SequenceOf",
 	"SequenceOf",
-	SEQUENCE_OF_free,
-	SEQUENCE_OF_print,
-	SEQUENCE_OF_compare,
+	&asn_OP_SEQUENCE_OF,
 	SEQUENCE_OF_constraint,
-	SEQUENCE_OF_decode_ber,
-	SEQUENCE_OF_encode_der,
-	SEQUENCE_OF_decode_xer,
-	SEQUENCE_OF_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	SEQUENCE_OF_decode_uper,
-	SEQUENCE_OF_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_SequenceOf_tags_1,
 	sizeof(asn_DEF_SequenceOf_tags_1)
 		/sizeof(asn_DEF_SequenceOf_tags_1[0]), /* 1 */
@@ -2880,18 +2620,8 @@
 asn_TYPE_descriptor_t asn_DEF_Enum0 = {
 	"Enum0",
 	"Enum0",
-	NativeEnumerated_free,
-	NativeEnumerated_print,
-	NativeEnumerated_compare,
+	&asn_OP_NativeEnumerated,
 	NativeEnumerated_constraint,
-	NativeEnumerated_decode_ber,
-	NativeEnumerated_encode_der,
-	NativeEnumerated_decode_xer,
-	NativeEnumerated_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeEnumerated_decode_uper,
-	NativeEnumerated_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Enum0_tags_1,
 	sizeof(asn_DEF_Enum0_tags_1)
 		/sizeof(asn_DEF_Enum0_tags_1[0]), /* 1 */
@@ -2998,18 +2728,8 @@
 asn_TYPE_descriptor_t asn_DEF_Enum1 = {
 	"Enum1",
 	"Enum1",
-	NativeEnumerated_free,
-	NativeEnumerated_print,
-	NativeEnumerated_compare,
+	&asn_OP_NativeEnumerated,
 	Enum1_constraint,
-	NativeEnumerated_decode_ber,
-	NativeEnumerated_encode_der,
-	NativeEnumerated_decode_xer,
-	NativeEnumerated_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	NativeEnumerated_decode_uper,
-	NativeEnumerated_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Enum1_tags_1,
 	sizeof(asn_DEF_Enum1_tags_1)
 		/sizeof(asn_DEF_Enum1_tags_1[0]), /* 1 */
@@ -3141,18 +2861,8 @@
 asn_TYPE_descriptor_t asn_DEF_Identifier = {
 	"Identifier",
 	"Identifier",
-	VisibleString_free,
-	VisibleString_print,
-	VisibleString_compare,
+	&asn_OP_VisibleString,
 	Identifier_constraint,
-	VisibleString_decode_ber,
-	VisibleString_encode_der,
-	VisibleString_decode_xer,
-	VisibleString_encode_xer,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
-	VisibleString_decode_uper,
-	VisibleString_encode_uper,
-	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Identifier_tags_1,
 	sizeof(asn_DEF_Identifier_tags_1)
 		/sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */