fn to_vec<K, V>(&mut self, storage: &Self::Storage) -> Vec<((K, V), Vec<(Self::Time, Self::Diff)>)>
    where 
        for<'a> Self::Key<'a> : IntoOwned<'a, Owned = K>,
        for<'a> Self::Val<'a> : IntoOwned<'a, Owned = V>,
    {
        let mut out = Vec::new();
        self.rewind_keys(storage);
        while let Some(key) = self.get_key(storage) {
            self.rewind_vals(storage);
            while let Some(val) = self.get_val(storage) {
                let mut kv_out = Vec::new();
                self.map_times(storage, |ts, r| {
                    kv_out.push((ts.into_owned(), r.into_owned()));
                });
                out.push(((key.into_owned(), val.into_owned()), kv_out));
                self.step_val(storage);
            }
            self.step_key(storage);
        }
        out
    }
Rewinds the cursor and outputs its contents to a Vec
differential-dataflow/src/trace/cursor/mod.rs