segbend: When constructing, don't assume bend before face dot

This commit is contained in:
Mikolaj Wielgus 2023-10-17 22:38:27 +00:00
parent 11c7f7fb12
commit e4e6590b4c
1 changed files with 16 additions and 22 deletions

View File

@ -21,34 +21,28 @@ impl Segbend {
dot: DotIndex, dot: DotIndex,
graph: &StableDiGraph<TaggedWeight, Label, usize>, graph: &StableDiGraph<TaggedWeight, Label, usize>,
) -> Option<Self> { ) -> Option<Self> {
Dot::new(dot, graph).tagged_prev().map(|tagged_prev| { let bend = *Dot::new(dot, graph).tagged_prev()?.as_bend()?;
let bend = tagged_prev.into_bend().unwrap();
let dot = Bend::new(bend, graph).prev().unwrap(); let dot = Bend::new(bend, graph).prev().unwrap();
let seg = Dot::new(dot, graph) let seg = Dot::new(dot, graph)
.tagged_prev() .tagged_prev()
.unwrap() .unwrap()
.into_seg() .into_seg()
.unwrap(); .unwrap();
Some(Self { bend, dot, seg })
Self { bend, dot, seg }
})
} }
pub fn from_dot_next( pub fn from_dot_next(
dot: DotIndex, dot: DotIndex,
graph: &StableDiGraph<TaggedWeight, Label, usize>, graph: &StableDiGraph<TaggedWeight, Label, usize>,
) -> Option<Self> { ) -> Option<Self> {
Dot::new(dot, graph).tagged_next().map(|tagged_next| { let bend = *Dot::new(dot, graph).tagged_next()?.as_bend()?;
let bend = tagged_next.into_bend().unwrap();
let dot = Bend::new(bend, graph).next().unwrap(); let dot = Bend::new(bend, graph).next().unwrap();
let seg = Dot::new(dot, graph) let seg = Dot::new(dot, graph)
.tagged_next() .tagged_next()
.unwrap() .unwrap()
.into_seg() .into_seg()
.unwrap(); .unwrap();
Some(Self { bend, dot, seg })
Self { bend, dot, seg }
})
} }
} }