print_.defaults = {'_default1': ('s', 'n', 'f', 'return {WRAPPED}(d,stdout,' '"{SUBWORD}",{MAINTYPE}_format);')} print_.original = 4 print_.original_defaults = {'_default2': 2, '_default1': 1} #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # format_ = Function('format', 'bool', ('const {SUBTYPE}*', 'i'), ('char **', 'b'), ('size_t*', 's')) format_.wrapping = {'bool': 'snprintf(*b,*s,"%s",*i?"true":"false");return true;', 'char': 'cutils_fmtc_repr(*b,*s,i,1);return true;', 'char*': 'size_t l=strlen(*i);if(*s<l+3)if(!(*b=realloc(*b,(*s=l*2+3))))' 'return false;cutils_fmtc_repr(*b,*s,*i,l);return true;', 'default': 'snprintf(*b,*s,"%{FORMAT}",*i);return true;'} format_.generics = NotImplemented #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # compare_ = Function('compare', 'bool', ('const void*', 'p1'), ('const void*', 'p2'), ('size_t', 's')) compare_.wrapping = {'float': 'return cutils_fcmp_float_compare(*(float*)p1,*(float*)p2);', 'double': 'return cutils_fcmp_double_compare(*(double*)p1,*(double*)p2);', 'long double': 'return cutils_fcmp_long_double_compare(' '*(long double*)p1,*(long double*)p2);', 'default': 'return !memcmp(p1,p2,s);'} compare_.generics = NotImplemented #------------------------------------------------------------------------------#
('{SUBTYPE_1}**', 'k'), ('{SUBTYPE_2}**', 'v'), supported='{SUPPORT_1}') iter_items_.wrapping = _RETURN_DEF iter_items_.original = 3 #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # compare_ = Function('compare', 'bool', ('const void*', 'p1'), ('const void*', 'p2'), ('size_t', 's')) compare_.wrapping = { 'float': 'return cutils_fcmp_float_compare(*(float*)p1,*(float*)p2);', 'double': 'return cutils_fcmp_double_compare(*(double*)p1,*(double*)p2);', 'long double': 'return cutils_fcmp_long_double_compare(' '*(long double*)p1,*(long double*)p2);', 'default': 'return !memcmp(p1,p2,s);' } compare_.generics = NotImplemented #------------------------------------------------------------------------------# def generate(folder, macros_dict): methods(base_name=HASHM, base_type=PROTO, module_prefix=PREFIX, sub_types=C_TYPES, combine_sub_types=lambda t: itertools.product(t, repeat=2), support_types=SUPPORTS, guard=GUARD, base_header='static_hash_map.h', base_source='static_hash_map.c', output_header=os.path.join(folder, 'cshm.h'), output_source=os.path.join(folder, 'cshm.c'),
iter_items_ = Function('items', 'bool', ('{SUPPORT_TYPE_1}*', 'i'), ('{SUBTYPE_1}**', 'k'), ('{SUBTYPE_2}**', 'v'), supported='{SUPPORT_1}') iter_items_.wrapping = _RETURN_DEF iter_items_.original = 3 #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # compare_ = Function('compare', 'bool', ('const void*', 'p1'), ('const void*', 'p2'), ('size_t', 's')) compare_.wrapping = {'float': 'return cutils_fcmp_float_compare(*(float*)p1,*(float*)p2);', 'double': 'return cutils_fcmp_double_compare(*(double*)p1,*(double*)p2);', 'long double': 'return cutils_fcmp_long_double_compare(' '*(long double*)p1,*(long double*)p2);', 'default': 'return !memcmp(p1,p2,s);'} compare_.generics = NotImplemented #------------------------------------------------------------------------------# def generate(folder, macros_dict): methods(base_name=HASHM, base_type=PROTO, module_prefix=PREFIX, sub_types=C_TYPES, combine_sub_types=lambda t: itertools.product(t, repeat=2), support_types=SUPPORTS, guard=GUARD, base_header='static_hash_map.h', base_source='static_hash_map.c', output_header=os.path.join(folder, 'cshm.h'), output_source=os.path.join(folder, 'cshm.c'), macros_dict=macros_dict,
'"{SUBWORD}",{MAINTYPE}_format);')} print_.original = 4 print_.original_defaults = {'_default2': 2, '_default1': 1} #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # TODO: is there a way to make this inline? format_ = Function('format', 'bool', ('const {SUBTYPE}*', 'i'), ('char**', 'b'), ('size_t*', 's')) format_.wrapping = {'bool': 'snprintf(*b,*s,"%s",*i?"true":"false");return true;', 'char': 'cutils_fmtc_repr(*b,*s,i,1);return true;', 'char*': 'size_t l=strlen(*i);if(*s<l+3)if(!(*b=realloc(*b,(*s=l*2+3))))' 'return false;cutils_fmtc_repr(*b,*s,*i,l);return true;', 'default': 'snprintf(*b,*s,"%{FORMAT}",*i);return true;'} format_.generics = NotImplemented #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # TODO: is there a way to make this inline? compare_ = Function('compare', 'bool', ('const void*', 'p1'), ('const void*', 'p2'), ('size_t', 's')) compare_.wrapping = {'float': 'return cutils_fcmp_float_compare(*(float*)p1,*(float*)p2);', 'double': 'return cutils_fcmp_double_compare(*(double*)p1,*(double*)p2);', 'long double': 'return cutils_fcmp_long_double_compare(' '*(long double*)p1,*(long double*)p2);', 'default': 'return !memcmp(p1,p2,s);'} compare_.generics = NotImplemented