package protocolsupport.protocol.serializer;

import java.nio.charset.StandardCharsets;

import io.netty.buffer.ByteBuf;
import protocolsupport.utils.Utils;

public class StringSerializer {

	public static String readVarIntUTF8String(ByteBuf from) {
		return new String(MiscSerializer.readBytes(from, VarNumberSerializer.readVarInt(from)), StandardCharsets.UTF_8);
	}

	public static void writeVarIntUTF8String(ByteBuf to, String string) {
		byte[] bytes = string.getBytes(StandardCharsets.UTF_8);
		VarNumberSerializer.writeVarInt(to, bytes.length);
		to.writeBytes(bytes);
	}

	public static String readShortUTF16BEString(ByteBuf buf) {
		return new String(Utils.readBytes(buf, buf.readUnsignedShort() * 2), StandardCharsets.UTF_16BE);
	}

	public static void writeShortUTF16BEString(ByteBuf buf, String string) {
		buf.writeShort(string.length());
		buf.writeBytes(string.getBytes(StandardCharsets.UTF_16BE));
	}

}