+int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td,
+ const void *struct_ptr);
+
+/*
+ * A helper function that uses XER encoding/decoding to verify that:
+ * - Both structures encode into the same BASIC XER.
+ * - Both resulting XER byte streams can be decoded back.
+ * - Both decoded structures encode into the same BASIC XER (round-trip).
+ * All of this verifies equivalence between structures and a round-trip.
+ * ARGUMENTS:
+ * (opt_debug_stream) - If specified, prints ongoing details.
+ */
+enum xer_equivalence_e {
+ XEQ_SUCCESS, /* The only completely positive return value */
+ XEQ_FAILURE, /* General failure */
+ XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */
+ XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */
+ XEQ_DIFFERENT, /* Structures encoded into different XER */
+ XEQ_DECODE_FAILED, /* Decode of the XER data failed */
+ XEQ_ROUND_TRIP_FAILED /* Bad round-trip */
+};
+enum xer_equivalence_e xer_equivalent(
+ const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1,
+ const void *struct2, FILE *opt_debug_stream);