applyHeadLimit<T> function
Apply head_limit and offset to a list of items. Explicit 0 = unlimited escape hatch.
Implementation
HeadLimitResult<T> applyHeadLimit<T>(
List<T> items,
int? limit, {
int offset = 0,
}) {
// Explicit 0 = unlimited escape hatch
if (limit == 0) {
return HeadLimitResult(
items: offset > 0 ? items.sublist(offset.clamp(0, items.length)) : items,
);
}
final effectiveLimit = limit ?? defaultHeadLimit;
final start = offset.clamp(0, items.length);
final end = (start + effectiveLimit).clamp(0, items.length);
final sliced = items.sublist(start, end);
// Only report appliedLimit when truncation actually occurred
final wasTruncated = (items.length - start) > effectiveLimit;
return HeadLimitResult(
items: sliced,
appliedLimit: wasTruncated ? effectiveLimit : null,
);
}