blob: 55d016c4bf7bf56936f034b7550996d1b7ca6473 [file] [log] [blame]
Jeff King902bb362011-05-19 17:34:33 -04001#ifndef SHA1_ARRAY_H
2#define SHA1_ARRAY_H
3
brian m. carlson910650d2017-03-31 01:40:00 +00004struct oid_array {
brian m. carlsonee3051b2017-03-26 16:01:37 +00005 struct object_id *oid;
Jeff King902bb362011-05-19 17:34:33 -04006 int nr;
7 int alloc;
8 int sorted;
9};
10
brian m. carlson910650d2017-03-31 01:40:00 +000011#define OID_ARRAY_INIT { NULL, 0, 0, 0 }
Jeff King902bb362011-05-19 17:34:33 -040012
brian m. carlson910650d2017-03-31 01:40:00 +000013void oid_array_append(struct oid_array *array, const struct object_id *oid);
14int oid_array_lookup(struct oid_array *array, const struct object_id *oid);
15void oid_array_clear(struct oid_array *array);
Jeff King902bb362011-05-19 17:34:33 -040016
brian m. carlson1b7ba792017-03-31 01:39:59 +000017typedef int (*for_each_oid_fn)(const struct object_id *oid,
18 void *data);
Ævar Arnfjörð Bjarmason5cc044e2018-05-10 12:43:02 +000019int oid_array_for_each(struct oid_array *array,
20 for_each_oid_fn fn,
21 void *data);
brian m. carlson910650d2017-03-31 01:40:00 +000022int oid_array_for_each_unique(struct oid_array *array,
Ævar Arnfjörð Bjarmason72486722018-05-10 12:42:59 +000023 for_each_oid_fn fn,
24 void *data);
Stefan Beller161b1cf2018-11-28 16:27:48 -080025void oid_array_filter(struct oid_array *array,
26 for_each_oid_fn want,
27 void *cbdata);
Jeff Kingcff38a52011-05-19 17:34:46 -040028
Jeff King902bb362011-05-19 17:34:33 -040029#endif /* SHA1_ARRAY_H */