#![forbid(unsafe_code)]
extern crate self as web_time;
pub mod algo;
pub mod error;
pub mod graph;
mod host_time;
pub use algo::{
Algorithm, AlignmentConstraint, CoseBilkentOptions, FcoseOptions, RelativePlacementConstraint,
};
pub use error::{Error, Result};
pub use graph::{
Anchor, BoundsExtras, Compound, Edge, Graph, LayoutRect, LayoutResult, Node, Point,
};
pub(crate) use host_time::{Duration, Instant};
pub fn layout(graph: &Graph, algorithm: Algorithm) -> Result<LayoutResult> {
match algorithm {
Algorithm::CoseBilkent(opts) => algo::cose_bilkent::layout(graph, &opts),
Algorithm::Fcose(opts) => algo::fcose::layout(graph, &opts),
}
}