class StringSizedReader implements SizedReader<String>, StatefulCopyable<StringSizedReader> {

    /**
     * Cache field
     */
    private transient StringBuilder sb;

    public StringSizedReader() {
        initTransients();
    }

    private void initTransients() {
        sb = new StringBuilder();
    }

    @NotNull
    @Override
    public String read(@NotNull Bytes in, long size, @Nullable String using) {<FILL_FUNCTION_BODY>}

    @Override
    public StringSizedReader copy() {
        return new StringSizedReader();
    }

    @Override
    public void readMarshallable(@NotNull WireIn wireIn) {
        // no fields to read
        initTransients();
    }

    @Override
    public void writeMarshallable(@NotNull WireOut wireOut) {
        // no fields to write
    }
}

        if (0 > size || size > Integer.MAX_VALUE)
            throw new IllegalStateException("positive int size expected, " + size + " given");
        sb.setLength(0);
        BytesUtil.parseUtf8(in, sb, (int) size);
        return sb.toString();
    
<no_super_class>