Abstract reusable allocations into one struct to simplify split searching code.