diff options
author | Vincent Ambo <Vincent Ambo> | 2020-01-11T23·36+0000 |
---|---|---|
committer | Vincent Ambo <Vincent Ambo> | 2020-01-11T23·36+0000 |
commit | 1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5 (patch) | |
tree | e3accb9beed5c4c1b5a05c99db71ab2841f0ed04 /decorate.h |
Squashed 'third_party/git/' content from commit cb71568594
git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7
Diffstat (limited to 'decorate.h')
-rw-r--r-- | decorate.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/decorate.h b/decorate.h new file mode 100644 index 000000000000..ee43dee1f008 --- /dev/null +++ b/decorate.h @@ -0,0 +1,61 @@ +#ifndef DECORATE_H +#define DECORATE_H + +/* + * A data structure that associates Git objects to void pointers. See + * t/helper/test-example-decorate.c for a demonstration of how to use these + * functions. + */ + +/* + * An entry in the data structure. + */ +struct decoration_entry { + const struct object *base; + void *decoration; +}; + +/* + * The data structure. + * + * This data structure must be zero-initialized. + */ +struct decoration { + /* + * Not used by the decoration mechanism. Clients may use this for + * whatever they want. + */ + const char *name; + + /* + * The capacity of "entries". + */ + unsigned int size; + + /* + * The number of real Git objects (that is, entries with non-NULL + * "base"). + */ + unsigned int nr; + + /* + * The entries. This is an array of size "size", containing nr entries + * with non-NULL "base" and (size - nr) entries with NULL "base". + */ + struct decoration_entry *entries; +}; + +/* + * 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); + +#endif |