Module: Zstd::Dictionary

Defined in:
ext/extzstd.c

Class Method Summary collapse

Class Method Details

.add_entropy_tables_from_buffer(dict, dict_capacity, sample) ⇒ Object



459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
# File 'ext/extzstd.c', line 459

static VALUE
dict_s_add_entropy_tables_from_buffer(VALUE mod, VALUE dict, VALUE dict_capacity, VALUE sample)
{
    /*
     * ZDICTLIB_API size_t ZDICT_finalizeDictionary(void* dstDictBuffer, size_t maxDictSize,
     *                                 const void* dictContent, size_t dictContentSize,
     *                                 const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples,
     *                                 ZDICT_params_t parameters);
     */

    rb_check_type(dict, RUBY_T_STRING);
    rb_check_type(sample, RUBY_T_STRING);
    size_t capa = NUM2SIZET(dict_capacity);
    aux_str_modify_expand(dict, capa);
    char *destptr = RSTRING_PTR(dict);
    size_t destlen = RSTRING_LEN(dict);
    const char *sampleptr = RSTRING_PTR(sample);
    size_t samplesize = RSTRING_LEN(sample);
    ZDICT_params_t params = { 0, 0, 0 };
    size_t s = ZDICT_finalizeDictionary(destptr, capa, destptr, destlen, sampleptr, &samplesize, 1, params);
    extzstd_check_error(s);
    rb_str_set_len(dict, s);
    return dict;
}

.getid(dict) ⇒ Object



484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
# File 'ext/extzstd.c', line 484

static VALUE
dict_s_getid(VALUE mod, VALUE dict)
{
    /*
     * ZDICTLIB_API unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize);
     */

    rb_check_type(dict, RUBY_T_STRING);
    const char *p;
    size_t psize;
    RSTRING_GETMEM(dict, p, psize);

    size_t s = ZDICT_getDictID(p, psize);
    extzstd_check_error(s);

    return SIZET2NUM(s);
}

.train_from_buffer(src, dict_capacity) ⇒ Object



441
442
443
444
445
446
447
448
449
450
451
452
453
# File 'ext/extzstd.c', line 441

static VALUE
dict_s_train_from_buffer(VALUE mod, VALUE src, VALUE dict_capacity)
{
    rb_check_type(src, RUBY_T_STRING);
    size_t capa = NUM2SIZET(dict_capacity);
    VALUE dict = rb_str_buf_new(capa);
    size_t srcsize = RSTRING_LEN(src);
    const ZDICT_legacy_params_t params = { 0 };
    size_t s = ZDICT_trainFromBuffer_legacy(RSTRING_PTR(dict), capa, RSTRING_PTR(src), &srcsize, 1, params);
    extzstd_check_error(s);
    rb_str_set_len(dict, s);
    return dict;
}