blob: 04b0756334da7adf1e3eefb3f521f8c95d263046 [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);
brian m. carlson910650d2017-03-31 01:40:00 +000019int oid_array_for_each_unique(struct oid_array *array,
brian m. carlson1b7ba792017-03-31 01:39:59 +000020 for_each_oid_fn fn,
Jeff King16ddcd42016-09-26 08:00:29 -040021 void *data);
Jeff Kingcff38a52011-05-19 17:34:46 -040022
Jeff King902bb362011-05-19 17:34:33 -040023#endif /* SHA1_ARRAY_H */