И Грег, и Кеван привели вам примеры правильного дизайна: выполните первое преобразование без усечения, затем выполните усечение во втором преобразовании.
Единственный знак вопроса над этим - производительность. Если первое преобразование будет генерировать 50 МБ вывода, а вам нужны только первые 50 КБ, это неэффективный подход. Если это вообще возможно, перепишите требования, чтобы выразить их в терминах размера входных данных, а не размера выходных данных. Если вы не можете этого сделать, и если двухфазный подход слишком расточителен, то единственное решение, которое я могу придумать, - это внедрить некоторые функции расширения с отслеживанием состояния, которые отслеживают объем производимой продукции и позволяют вам задавать вопрос, является ли ограничение был превышен. Детали будут зависеть от вашего выбора процессора.