This might be controversial, but https://github.com/georust/proj/pull/106 got me thinking: If people want to interop proj with geo-types, it's likely that they want something like the Transform trait we just added to geo.
In other words, if they are using proj --features geo-types it seems inevitable that they are going to end up writing some subset of the Transform trait themselves.
What if we instead:
moved the Transform trait to proj
added impl Transform for geo-types::* to proj (behind the geo-types feature)
have geo leverage the impl in proj, so as not to lose that functionality.
One downside is that the current Transform impl, being in geo, leverages the MapCoords feature, so the impls in proj would be more verbose, which isn't ideal, but if we're going to add the ability to transform geo-types to proj (like #106 proposes), it seems like we might as well consolidate around one implementation.
This might be controversial, but https://github.com/georust/proj/pull/106 got me thinking: If people want to interop proj with geo-types, it's likely that they want something like the Transform trait we just added to geo.
In other words, if they are using
proj --features geo-types
it seems inevitable that they are going to end up writing some subset of the Transform trait themselves.What if we instead:
impl Transform for geo-types::*
to proj (behind the geo-types feature)One downside is that the current Transform impl, being in geo, leverages the MapCoords feature, so the impls in proj would be more verbose, which isn't ideal, but if we're going to add the ability to transform geo-types to proj (like #106 proposes), it seems like we might as well consolidate around one implementation.