Jeff King | 902bb36 | 2011-05-19 17:34:33 -0400 | [diff] [blame] | 1 | #ifndef SHA1_ARRAY_H |
| 2 | #define SHA1_ARRAY_H |
| 3 | |
brian m. carlson | 910650d | 2017-03-31 01:40:00 +0000 | [diff] [blame] | 4 | struct oid_array { |
brian m. carlson | ee3051b | 2017-03-26 16:01:37 +0000 | [diff] [blame] | 5 | struct object_id *oid; |
Jeff King | 902bb36 | 2011-05-19 17:34:33 -0400 | [diff] [blame] | 6 | int nr; |
| 7 | int alloc; |
| 8 | int sorted; |
| 9 | }; |
| 10 | |
brian m. carlson | 910650d | 2017-03-31 01:40:00 +0000 | [diff] [blame] | 11 | #define OID_ARRAY_INIT { NULL, 0, 0, 0 } |
Jeff King | 902bb36 | 2011-05-19 17:34:33 -0400 | [diff] [blame] | 12 | |
brian m. carlson | 910650d | 2017-03-31 01:40:00 +0000 | [diff] [blame] | 13 | void oid_array_append(struct oid_array *array, const struct object_id *oid); |
| 14 | int oid_array_lookup(struct oid_array *array, const struct object_id *oid); |
| 15 | void oid_array_clear(struct oid_array *array); |
Jeff King | 902bb36 | 2011-05-19 17:34:33 -0400 | [diff] [blame] | 16 | |
brian m. carlson | 1b7ba79 | 2017-03-31 01:39:59 +0000 | [diff] [blame] | 17 | typedef int (*for_each_oid_fn)(const struct object_id *oid, |
| 18 | void *data); |
Ævar Arnfjörð Bjarmason | 5cc044e | 2018-05-10 12:43:02 +0000 | [diff] [blame] | 19 | int oid_array_for_each(struct oid_array *array, |
| 20 | for_each_oid_fn fn, |
| 21 | void *data); |
brian m. carlson | 910650d | 2017-03-31 01:40:00 +0000 | [diff] [blame] | 22 | int oid_array_for_each_unique(struct oid_array *array, |
Ævar Arnfjörð Bjarmason | 7248672 | 2018-05-10 12:42:59 +0000 | [diff] [blame] | 23 | for_each_oid_fn fn, |
| 24 | void *data); |
Stefan Beller | 161b1cf | 2018-11-28 16:27:48 -0800 | [diff] [blame] | 25 | void oid_array_filter(struct oid_array *array, |
| 26 | for_each_oid_fn want, |
| 27 | void *cbdata); |
Jeff King | cff38a5 | 2011-05-19 17:34:46 -0400 | [diff] [blame] | 28 | |
Jeff King | 902bb36 | 2011-05-19 17:34:33 -0400 | [diff] [blame] | 29 | #endif /* SHA1_ARRAY_H */ |