@Nullable
	public Integer getIntValue(@IntFormat final int formatType,
							   @IntRange(from = 0) final int offset) {
		if ((offset + getTypeLen(formatType)) > size()) return null;

		return switch (formatType) {
			case FORMAT_UINT8 -> unsignedByteToInt(mValue[offset]);
			case FORMAT_UINT16_LE -> unsignedBytesToInt(mValue[offset], mValue[offset + 1]);
			case FORMAT_UINT16_BE -> unsignedBytesToInt(mValue[offset + 1], mValue[offset]);
			case FORMAT_UINT24_LE -> unsignedBytesToInt(
					mValue[offset],
					mValue[offset + 1],
					mValue[offset + 2],
					(byte) 0
			);
			case FORMAT_UINT24_BE -> unsignedBytesToInt(
					mValue[offset + 2],
					mValue[offset + 1],
					mValue[offset],
					(byte) 0
			);
			case FORMAT_UINT32_LE -> unsignedBytesToInt(
					mValue[offset],
					mValue[offset + 1],
					mValue[offset + 2],
					mValue[offset + 3]
			);
			case FORMAT_UINT32_BE -> unsignedBytesToInt(
					mValue[offset + 3],
					mValue[offset + 2],
					mValue[offset + 1],
					mValue[offset]
			);
			case FORMAT_SINT8 -> unsignedToSigned(unsignedByteToInt(mValue[offset]), 8);
			case FORMAT_SINT16_LE -> unsignedToSigned(unsignedBytesToInt(mValue[offset],
					mValue[offset + 1]), 16);
			case FORMAT_SINT16_BE -> unsignedToSigned(unsignedBytesToInt(mValue[offset + 1],
					mValue[offset]), 16);
			case FORMAT_SINT24_LE -> unsignedToSigned(unsignedBytesToInt(
					mValue[offset],
					mValue[offset + 1],
					mValue[offset + 2],
					(byte) 0
			), 24);
			case FORMAT_SINT24_BE -> unsignedToSigned(unsignedBytesToInt(
					(byte) 0,
					mValue[offset + 2],
					mValue[offset + 1],
					mValue[offset]
			), 24);
			case FORMAT_SINT32_LE -> unsignedToSigned(unsignedBytesToInt(
					mValue[offset],
					mValue[offset + 1],
					mValue[offset + 2],
					mValue[offset + 3]
			), 32);
			case FORMAT_SINT32_BE -> unsignedToSigned(unsignedBytesToInt(
					mValue[offset + 3],
					mValue[offset + 2],
					mValue[offset + 1],
					mValue[offset]
			), 32);
			default -> null;
		};

	}
@Test
	public void getValue_UINT16() {
		final Data data = new Data(new byte[] { (byte) 0xD0, 0x67 });
		final int value = data.getIntValue(Data.FORMAT_UINT16_LE, 0);
		assertEquals(26576, value);
	}