diff --git a/src/column.rs b/src/column.rs index 042f283..230bffb 100644 --- a/src/column.rs +++ b/src/column.rs @@ -90,6 +90,24 @@ impl Columns { )])); } + pub fn insert_intermediary_routes(&mut self, intermediary_routes: Vec) { + let id = Self::get_new_id(); + + let routes = intermediary_routes + .into_iter() + .map(|r| match r { + IntermediaryRoute::Timeline(timeline) => { + let route = Route::timeline(timeline.id); + self.timelines.insert(id, timeline); + route + } + IntermediaryRoute::Route(route) => route, + }) + .collect(); + + self.columns.insert(id, Column::new(routes)); + } + fn get_new_id() -> u32 { UIDS.fetch_add(1, Ordering::Relaxed) } @@ -270,3 +288,8 @@ impl SerializableColumns { columns } } + +pub enum IntermediaryRoute { + Timeline(Timeline), + Route(Route), +}