Rust port of Boost.Geometry — same design philosophy (concepts, tags, strategy-based dispatch), works with your own point/geometry types, re-exported as a single API surface.
//! M-KC1 — handing a read-only borrowed adapter to a
//! `PointMut`-requiring algorithm (`envelope` materialises a
//! `model::Box<P>` whose corners are `P`-typed) is a compile error
//! at the facade layer.
useboost_geometry::adapt::Adapt;useboost_geometry::algorithm::envelope;fnmain(){let storage =[[0.0_f64,0.0],[3.0,4.0]];// Borrowed adapter implements Point but not PointMut.
let a = Adapt(&storage[0]);let_=envelope(&a);}