#![cfg_attr(not(feature = "std"), no_std)]
#![forbid(unsafe_code)]
extern crate alloc;
pub mod assemble;
pub mod buffer;
pub mod line_intersection;
pub mod merge;
pub mod operation;
pub mod predicate;
pub mod relate;
pub mod surface_point;
pub mod traverse;
pub mod turn;
pub mod validity;
pub use buffer::{
JoinStrategy, PointStrategy, buffer, buffer_convex_polygon, buffer_point, buffer_with,
buffer_with_strategy,
};
pub use line_intersection::{LineIntersection, line_intersection};
pub use merge::{merge_elements, merge_multipolygon, merge_polygons, stitch_triangles};
pub use operation::{OverlayError, difference, intersection, sym_difference, r#union, union_poly};
pub use relate::{
De9im, Dimension, RelateError, contains_properly, crosses, overlaps, relate as relate_matrix,
relate as relation, relate_mask as relate, touches,
};
pub use surface_point::point_on_surface;
pub use validity::{
ValidityFailure, ValidityOptions, is_valid, is_valid_polygon, is_valid_polygon_with,
is_valid_ring, is_valid_ring_with, is_valid_with, validity_reason, validity_reason_with,
};