//! Shape implementations for Euler and Venn diagrams.
//!
//! This module defines composable traits for geometric operations and diagram shapes.
//! The trait system is decomposed to allow code reuse across different geometric types:
//!
//! - Basic geometric properties: `Area`, `Centroid`, `Perimeter`, `BoundingBox`
//! - Spatial relations between same-type objects: `Distance`, `Closed`
//! - Diagram-specific operations: `DiagramShape` (composes all of the above)

pub mod circle;
pub mod ellipse;
pub mod polygon;
pub mod rectangle;
pub mod rotated_rectangle;
pub mod square;

pub use circle::Circle;
pub use ellipse::Ellipse;
pub use polygon::Polygon;
pub use rectangle::Rectangle;
pub use rotated_rectangle::RotatedRectangle;
pub use square::Square;
