diff --git a/src/hb-array.hh b/src/hb-array.hh index 6efaf5fa5..40d3b7269 100644 --- a/src/hb-array.hh +++ b/src/hb-array.hh @@ -183,6 +183,20 @@ struct hb_array_t : hb_iter_with_fallback_t, Type&> hb_array_t truncate (unsigned length) const { return sub_array (0, length); } + auto chop (unsigned n) const -> decltype + ( + + hb_range (0u, 0u, n) + | hb_map (hb_partial<1> (hb_add, *this)) + | hb_map (hb_partial<2> (&hb_array_t::truncate, n)) + ) + { + return + + hb_range (0u, length, n) + | hb_map (hb_partial<1> (hb_add, *this)) + | hb_map (hb_partial<2> (&hb_array_t::truncate, n)) + ; + } + template