Files
c3c/lib/std/sort/sort.c3

33 lines
577 B
C

module std::sort;
macro usz @len_from_list(&list)
{
$if $defined(list.len()):
return list.len();
$else
return list.len;
$endif
}
macro bool @is_comparer(#cmp, #list)
{
var $params = $typeof(#cmp).params;
$if $params.len != 2:
return false;
$else
$if $params[0] != $params[1]:
return false;
$else
var $element = @typeid(#list[0]);
$switch
$case $element == $params[0]:
return true;
$case $and($params[0].kindof == POINTER, $params[0].inner == $element):
return true;
$default:
return false;
$endswitch
$endif
$endif
}