#pragma once

#include <util/generic/fwd.h>

void ReverseInPlace(TString& string);

/** NB. UTF-16 is variable-length encoding because of the surrogate pairs.
 * This function takes this into account and treats a surrogate pair as a single symbol.
 * Ex. if [C D] is a surrogate pair,
 * A B [C D] E
 * will become
 * E [C D] B A
 */
void ReverseInPlace(TUtf16String& string);

void ReverseInPlace(TUtf32String& string);