pub fn arrange_segments( segments: &[Segment2], tolerance: f64, ) -> Result<Vec<ArrangementRegion>, String>