#ifndef DECORATE_H #define DECORATE_H /* * A data structure that associates Git objects to void pointers. See * t/unit-tests/t-example-decorate.c for a demonstration of how to use these * functions. */ /* * An entry in the data structure. */ struct decoration_entry { … }; /* * The data structure. * * This data structure must be zero-initialized. */ struct decoration { … }; /* * Add an association from the given object to the given pointer (which may be * NULL), returning the previously associated pointer. If there is no previous * association, this function returns NULL. */ void *add_decoration(struct decoration *n, const struct object *obj, void *decoration); /* * Return the pointer associated to the given object. If there is no * association, this function returns NULL. */ void *lookup_decoration(struct decoration *n, const struct object *obj); /* * Clear all decoration entries, releasing any memory used by the structure. * If free_cb is not NULL, it is called for every decoration value currently * stored. * * After clearing, the decoration struct can be used again. The "name" field is * retained. */ void clear_decoration(struct decoration *n, void (*free_cb)(void *)); #endif