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)
552 553 554 555 556 557 |
# File 'ext/vibe_zstd/dict.c', line 552 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); } |