Method: Zstd::StreamDecoder#initialize

Defined in:
ext/extzstd_stream.c

#initialize(predict) ⇒ Object



245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
# File 'ext/extzstd_stream.c', line 245

static VALUE
dec_init(VALUE self, VALUE predict)
{
    /*
     * ZSTDLIB_API size_t ZSTD_initDStream(ZSTD_DStream* zds);
     * ZSTDLIB_API size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize);
     */

    ZSTD_DStream *p = getdecoder(self);

    if (NIL_P(predict)) {
        size_t s = ZSTD_initDStream(p);
        extzstd_check_error(s);
    } else {
        rb_check_type(predict, RUBY_T_STRING);
        size_t s = ZSTD_initDStream_usingDict(p, RSTRING_PTR(predict), RSTRING_LEN(predict));
        extzstd_check_error(s);
    }
    return self;
}