mirror of https://codeberg.org/topola/topola.git
Make `Bow` don't borrow the graph
This commit is contained in:
parent
47b3ffba08
commit
84a7f5d873
10
src/bow.rs
10
src/bow.rs
|
|
@ -3,7 +3,7 @@ use petgraph::stable_graph::StableDiGraph;
|
||||||
use crate::graph::{BendIndex, DotIndex, Label, SegIndex, TaggedIndex, TaggedWeight, Walk};
|
use crate::graph::{BendIndex, DotIndex, Label, SegIndex, TaggedIndex, TaggedWeight, Walk};
|
||||||
use crate::primitive::{Bend, Dot, Seg};
|
use crate::primitive::{Bend, Dot, Seg};
|
||||||
|
|
||||||
pub struct Bow<'a> {
|
pub struct Bow {
|
||||||
seg1_dot1: DotIndex,
|
seg1_dot1: DotIndex,
|
||||||
seg1: SegIndex,
|
seg1: SegIndex,
|
||||||
seg1_dot2: DotIndex,
|
seg1_dot2: DotIndex,
|
||||||
|
|
@ -11,11 +11,10 @@ pub struct Bow<'a> {
|
||||||
seg2_dot1: DotIndex,
|
seg2_dot1: DotIndex,
|
||||||
seg2: SegIndex,
|
seg2: SegIndex,
|
||||||
seg2_dot2: DotIndex,
|
seg2_dot2: DotIndex,
|
||||||
graph: &'a StableDiGraph<TaggedWeight, Label, usize>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Bow<'a> {
|
impl Bow {
|
||||||
pub fn new(index: BendIndex, graph: &'a StableDiGraph<TaggedWeight, Label, usize>) -> Self {
|
pub fn new(index: BendIndex, graph: &StableDiGraph<TaggedWeight, Label, usize>) -> Self {
|
||||||
let bend = index;
|
let bend = index;
|
||||||
|
|
||||||
let seg1_dot2 = Bend::new(bend, graph).prev().unwrap();
|
let seg1_dot2 = Bend::new(bend, graph).prev().unwrap();
|
||||||
|
|
@ -42,12 +41,11 @@ impl<'a> Bow<'a> {
|
||||||
seg2_dot1,
|
seg2_dot1,
|
||||||
seg2,
|
seg2,
|
||||||
seg2_dot2,
|
seg2_dot2,
|
||||||
graph,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Walk for Bow<'a> {
|
impl Walk for Bow {
|
||||||
fn interior(&self) -> Vec<TaggedIndex> {
|
fn interior(&self) -> Vec<TaggedIndex> {
|
||||||
vec![
|
vec![
|
||||||
TaggedIndex::Seg(self.seg1),
|
TaggedIndex::Seg(self.seg1),
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ use std::cell::{Ref, RefCell};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use crate::astar::astar;
|
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::graph::{BendWeight, DotWeight, SegWeight, TaggedWeight};
|
||||||
use crate::guide::Guide;
|
use crate::guide::Guide;
|
||||||
use crate::layout::Layout;
|
use crate::layout::Layout;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue