Skip to main content

sphereql_layout/
traits.rs

1use sphereql_core::SphericalPoint;
2
3use crate::types::LayoutResult;
4
5pub trait DimensionMapper: Send + Sync {
6    type Item;
7    fn map(&self, item: &Self::Item) -> SphericalPoint;
8}
9
10pub trait LayoutStrategy<T>: Send + Sync {
11    fn layout(&self, items: &[T], mapper: &dyn DimensionMapper<Item = T>) -> LayoutResult<T>;
12}