Class: VibeZstd::DDict
- Inherits:
-
Object
- Object
- VibeZstd::DDict
- Defined in:
- ext/vibe_zstd/vibe_zstd.c
Class Method Summary collapse
-
.estimate_memory(dict_size) ⇒ Object
DDict.estimate_memory(dict_size).
Instance Method Summary collapse
-
#dict_id ⇒ Object
DDict dict_id method - returns dictionary ID.
-
#initialize(dict_data) ⇒ Object
constructor
DDict initialize method.
-
#size ⇒ Object
DDict size method - returns the size in memory.
Constructor Details
#initialize(dict_data) ⇒ Object
DDict initialize method
71 72 73 74 75 76 77 78 79 80 81 |
# File 'ext/vibe_zstd/dict.c', line 71
static VALUE
vibe_zstd_ddict_initialize(VALUE self, VALUE dict_data) {
vibe_zstd_ddict* ddict;
TypedData_Get_Struct(self, vibe_zstd_ddict, &vibe_zstd_ddict_type, ddict);
StringValue(dict_data);
ddict->ddict = ZSTD_createDDict(RSTRING_PTR(dict_data), RSTRING_LEN(dict_data));
if (!ddict->ddict) {
rb_raise(rb_eRuntimeError, "Failed to create ZSTD_DDict");
}
return self;
}
|
Class Method Details
.estimate_memory(dict_size) ⇒ Object
DDict.estimate_memory(dict_size)
616 617 618 619 620 621 |
# File 'ext/vibe_zstd/dict.c', line 616
static VALUE
vibe_zstd_ddict_estimate_memory(VALUE self, VALUE dict_size) {
size_t size = NUM2SIZET(dict_size);
size_t estimate = ZSTD_estimateDDictSize(size, ZSTD_dlm_byCopy);
return SIZET2NUM(estimate);
}
|
Instance Method Details
#dict_id ⇒ Object
DDict dict_id method - returns dictionary ID
96 97 98 99 100 101 102 103 104 105 |
# File 'ext/vibe_zstd/dict.c', line 96
static VALUE
vibe_zstd_ddict_dict_id(VALUE self) {
vibe_zstd_ddict* ddict;
TypedData_Get_Struct(self, vibe_zstd_ddict, &vibe_zstd_ddict_type, ddict);
if (!ddict->ddict) {
rb_raise(rb_eRuntimeError, "DDict not initialized");
}
unsigned dictID = ZSTD_getDictID_fromDDict(ddict->ddict);
return UINT2NUM(dictID);
}
|
#size ⇒ Object
DDict size method - returns the size in memory
84 85 86 87 88 89 90 91 92 93 |
# File 'ext/vibe_zstd/dict.c', line 84
static VALUE
vibe_zstd_ddict_size(VALUE self) {
vibe_zstd_ddict* ddict;
TypedData_Get_Struct(self, vibe_zstd_ddict, &vibe_zstd_ddict_type, ddict);
if (!ddict->ddict) {
rb_raise(rb_eRuntimeError, "DDict not initialized");
}
size_t size = ZSTD_sizeof_DDict(ddict->ddict);
return SIZET2NUM(size);
}
|