java/core/src/main/java/org/bondlib/CompactBinaryReader.java [153:193]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        return this.reader.readBytes(count);
    }

    @Override
    public boolean readBool() throws IOException {
        return this.reader.readBool();
    }

    @Override
    public String readString() throws IOException {
        final int codeUnitCount = reader.readVarUInt32();
        if (codeUnitCount == 0) {
            // avoid calling decoder for an empty byte array
            return "";
        } else {
            final byte[] bytes = reader.readBytes(codeUnitCount);
            return StringHelper.decodeString(bytes);
        }
    }

    @Override
    public String readWString() throws IOException {
        final int codeUnitCount = reader.readVarUInt32();
        if (codeUnitCount == 0) {
            // avoid calling decoder for an empty byte array
            return "";
        } else {
            final byte[] bytes = reader.readBytes(codeUnitCount * 2);
            return StringHelper.decodeWString(bytes);
        }
    }

    @Override
    public void skip(final BondDataType type) throws IOException {
        switch (type.value) {
            // 1-byte
            case BondDataType.Values.BT_BOOL:
            case BondDataType.Values.BT_UINT8:
            case BondDataType.Values.BT_INT8:
                this.reader.skipBytes(1);
                break;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



java/core/src/main/java/org/bondlib/FastBinaryReader.java [141:181]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        return this.reader.readBytes(count);
    }

    @Override
    public boolean readBool() throws IOException {
        return this.reader.readBool();
    }

    @Override
    public String readString() throws IOException {
        final int codeUnitCount = reader.readVarUInt32();
        if (codeUnitCount == 0) {
            // avoid calling decoder for an empty byte array
            return "";
        } else {
            final byte[] bytes = reader.readBytes(codeUnitCount);
            return StringHelper.decodeString(bytes);
        }
    }

    @Override
    public String readWString() throws IOException {
        final int codeUnitCount = reader.readVarUInt32();
        if (codeUnitCount == 0) {
            // avoid calling decoder for an empty byte array
            return "";
        } else {
            final byte[] bytes = reader.readBytes(codeUnitCount * 2);
            return StringHelper.decodeWString(bytes);
        }
    }

    @Override
    public void skip(final BondDataType type) throws IOException {
        switch (type.value) {
            // 1-byte
            case BondDataType.Values.BT_BOOL:
            case BondDataType.Values.BT_UINT8:
            case BondDataType.Values.BT_INT8:
                this.reader.skipBytes(1);
                break;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



