Note that you can just return `Box&lt;Iterator&lt;Item=...&gt;&gt;`. Slight allocation+virtual dispatch overhead there, but not much.<p>Note that there is good activity around abstract return types happening (seems to be something the core team is putting effort into?), so it might happen soon.