implement buffering_source::map_next