graph_algo_ptas/embedding/index.rs
1//! This module is the main entry point for embedding
2
3use crate::{
4 data_structure::graph_dcel::{Dart, Face, GraphDCEL, Vertex},
5 utils::convert::UndirectedGraph,
6};
7
8/// The Embedding trait is implemented by all embedding algorithms
9pub trait Embedding<
10 V: Vertex,
11 D: Dart,
12 F: Face,
13 VI: Iterator<Item = V>,
14 DI: Iterator<Item = D>,
15 FI: Iterator<Item = F>,
16 T: GraphDCEL<V, D, F, VI, DI, FI>,
17>
18{
19 /// Receives a graph as an Argument an returns the embedding
20 fn embed(graph: UndirectedGraph) -> T;
21}