diff --git a/lib/xy.h b/lib/xy.h index 1cea7da..40fbeb8 100644 --- a/lib/xy.h +++ b/lib/xy.h @@ -8,7 +8,7 @@ * | Mikachu2333 * | * Created On : <2023-08-28> - * Last Modified : <2025-08-21> + * Last Modified : <2025-08-22> * * * xy: 襄阳、咸阳 @@ -22,7 +22,7 @@ #ifndef XY_H #define XY_H -#define _XY_Version "v0.1.7.0-2025/08/21" +#define _XY_Version "v0.1.7.0-2025/08/22" #define _XY_Maintain_URL "https://github.com/RubyMetric/chsrc/blob/dev/lib/xy.h" #define _XY_Maintain_URL2 "https://gitee.com/RubyMetric/chsrc/blob/dev/lib/xy.h" @@ -1367,6 +1367,25 @@ xy_seq_each (XySeq_t *seq, void (*func)(void *)) } } +/** + * @flavor Ruby: Enumerable#find + */ +void * +xy_seq_find (XySeq_t *seq, bool (*func)(void *)) +{ + xy_cant_be_null (seq); + xy_cant_be_null (func); + + for (XySeqItem_t *it = seq->first_item; it; it = it->next) + { + if (func (it->data)) + { + return it->data; + } + } + return NULL; +} + #define _XY_Map_Buckets_Count 97