Hash :
c66e2eaa
Author :
Thomas de Grivel
Date :
2023-02-11T00:36:40
wip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
/* c3
* Copyright 2022,2023 kmx.io <contact@kmx.io>
*
* Permission is hereby granted to use this software excepted
* on Apple computers granted the above copyright notice and
* this permission paragraph are included in all copies and
* substantial portions of this software.
*
* THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
* PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
* AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
* THIS SOFTWARE.
*/
#include <assert.h>
#include <strings.h>
#include "arg.h"
#include "binding.h"
#include "fn.h"
#include "list.h"
void fn_clean (s_fn *fn)
{
assert(fn);
list_delete_all(fn->pattern);
list_delete_all(fn->algo);
}
s_fn * fn_copy (const s_fn *src, s_fn *dest)
{
dest->arity = src->arity;
list_copy(src->pattern, &dest->pattern);
list_copy(src->algo, &dest->algo);
return dest;
}
s_fn * fn_init (s_fn *fn)
{
assert(fn);
bzero(fn, sizeof(s_fn));
return fn;
}