import {HexLengthDelimitedInt} from "./hexLengthDelimitedInt.impl"; function processSerializedString(input: string, offset: number): { length: number, value: string, nextOffset: number } { const lengthResult = HexLengthDelimitedInt.deserialize(input, offset); offset = lengthResult.nextOffset; const value = input.slice(offset, offset + lengthResult.number); offset += lengthResult.number; return {length: lengthResult.number, value, nextOffset: offset}; } export function serializeTagValue(tag: string, value: string): string { const serializedTag = HexLengthDelimitedInt.serialize(tag.length) + tag; const serializedValue = HexLengthDelimitedInt.serialize(value.length) + value; return serializedTag + serializedValue + '\n'; } export function deserializeTagValue(input: string, offset: number): { tag: string, value: string, nextOffset: number } { const tagResult = processSerializedString(input, offset); offset = tagResult.nextOffset; const valueResult = processSerializedString(input, offset); offset = valueResult.nextOffset; return {tag: tagResult.value, value: valueResult.value, nextOffset: offset}; }