Make `Bow` don't borrow the graph

This commit is contained in:
Mikolaj Wielgus 2023-08-28 19:17:57 +02:00
parent 47b3ffba08
commit 84a7f5d873
2 changed files with 5 additions and 7 deletions

View File

@ -3,7 +3,7 @@ use petgraph::stable_graph::StableDiGraph;
use crate::graph::{BendIndex, DotIndex, Label, SegIndex, TaggedIndex, TaggedWeight, Walk};
use crate::primitive::{Bend, Dot, Seg};
pub struct Bow<'a> {
pub struct Bow {
seg1_dot1: DotIndex,
seg1: SegIndex,
seg1_dot2: DotIndex,
@ -11,11 +11,10 @@ pub struct Bow<'a> {
seg2_dot1: DotIndex,
seg2: SegIndex,
seg2_dot2: DotIndex,
graph: &'a StableDiGraph<TaggedWeight, Label, usize>,
}
impl<'a> Bow<'a> {
pub fn new(index: BendIndex, graph: &'a StableDiGraph<TaggedWeight, Label, usize>) -> Self {
impl Bow {
pub fn new(index: BendIndex, graph: &StableDiGraph<TaggedWeight, Label, usize>) -> Self {
let bend = index;
let seg1_dot2 = Bend::new(bend, graph).prev().unwrap();
@ -42,12 +41,11 @@ impl<'a> Bow<'a> {
seg2_dot1,
seg2,
seg2_dot2,
graph,
}
}
}
impl<'a> Walk for Bow<'a> {
impl Walk for Bow {
fn interior(&self) -> Vec<TaggedIndex> {
vec![
TaggedIndex::Seg(self.seg1),

View File

@ -5,7 +5,7 @@ use std::cell::{Ref, RefCell};
use std::rc::Rc;
use crate::astar::astar;
use crate::graph::{BendIndex, DotIndex, Path, SegIndex, TaggedIndex};
use crate::graph::{BendIndex, DotIndex, SegIndex, TaggedIndex, Walk};
use crate::graph::{BendWeight, DotWeight, SegWeight, TaggedWeight};
use crate::guide::Guide;
use crate::layout::Layout;