StringType* StringType_load(StringType *self, Obj *dump) { Hash *source = (Hash*)CERTIFY(dump, HASH); CharBuf *class_name = (CharBuf*)Hash_Fetch_Str(source, "_class", 6); VTable *vtable = (class_name != NULL && Obj_Is_A((Obj*)class_name, CHARBUF)) ? VTable_singleton(class_name, NULL) : STRINGTYPE; StringType *loaded = (StringType*)VTable_Make_Obj(vtable); Obj *boost_dump = Hash_Fetch_Str(source, "boost", 5); Obj *indexed_dump = Hash_Fetch_Str(source, "indexed", 7); Obj *stored_dump = Hash_Fetch_Str(source, "stored", 6); Obj *sortable_dump = Hash_Fetch_Str(source, "sortable", 8); UNUSED_VAR(self); StringType_init(loaded); if (boost_dump) { loaded->boost = (float)Obj_To_F64(boost_dump); } if (indexed_dump) { loaded->indexed = (bool_t)Obj_To_I64(indexed_dump); } if (stored_dump) { loaded->stored = (bool_t)Obj_To_I64(stored_dump); } if (sortable_dump) { loaded->sortable = (bool_t)Obj_To_I64(sortable_dump); } return loaded; }
StringType* StringType_new() { StringType *self = (StringType*)VTable_Make_Obj(STRINGTYPE); return StringType_init(self); }