UNPKG

@wildboar/rose

Version:
52 lines (51 loc) 2.32 kB
/* eslint-disable */ import { ASN1TagClass as _TagClass, } from '@wildboar/asn1'; import * as $ from '@wildboar/asn1/functional'; import { _decode_Invoke, _encode_Invoke, } from '../Remote-Operations-Generic-ROS-PDUs/Invoke.ta.mjs'; import { _decode_ReturnResult, _encode_ReturnResult, } from '../Remote-Operations-Generic-ROS-PDUs/ReturnResult.ta.mjs'; import { _decode_ReturnError, _encode_ReturnError, } from '../Remote-Operations-Generic-ROS-PDUs/ReturnError.ta.mjs'; import { _decode_Reject, _encode_Reject, } from '../Remote-Operations-Generic-ROS-PDUs/Reject.ta.mjs'; let _cached_decoder_for_ROS = null; /** * @summary Decodes an ASN.1 element into a(n) ROS * @function * @param {_Element} el The element being decoded. * @returns {ROS} The decoded data structure. */ export function _decode_ROS(el) { if (!_cached_decoder_for_ROS) { _cached_decoder_for_ROS = $._decode_inextensible_choice({ 'CONTEXT 1': ['invoke', $._decode_implicit(() => _decode_Invoke)], 'CONTEXT 2': [ 'returnResult', $._decode_implicit(() => _decode_ReturnResult), ], 'CONTEXT 3': [ 'returnError', $._decode_implicit(() => _decode_ReturnError), ], 'CONTEXT 4': ['reject', $._decode_implicit(() => _decode_Reject)], }); } return _cached_decoder_for_ROS(el); } let _cached_encoder_for_ROS = null; /** * @summary Encodes a(n) ROS into an ASN.1 Element. * @function * @param value The element being encoded. * @param elGetter A function that can be used to get new ASN.1 elements. * @returns {_Element} The ROS, encoded as an ASN.1 Element. */ export function _encode_ROS(value, elGetter) { if (!_cached_encoder_for_ROS) { _cached_encoder_for_ROS = $._encode_choice({ invoke: $._encode_implicit(_TagClass.context, 1, () => _encode_Invoke, $.BER), returnResult: $._encode_implicit(_TagClass.context, 2, () => _encode_ReturnResult, $.BER), returnError: $._encode_implicit(_TagClass.context, 3, () => _encode_ReturnError, $.BER), reject: $._encode_implicit(_TagClass.context, 4, () => _encode_Reject, $.BER), }, $.BER); } return _cached_encoder_for_ROS(value, elGetter); } /* eslint-enable */