[−][src]Struct geo::Polygon
A bounded two-dimensional area.
A Polygon
’s outer boundary (exterior ring) is represented by a
LineString
. It may contain zero or more holes (interior rings), also
represented by LineString
s.
A Polygon
can be created with the Polygon::new
constructor or the polygon!
macro.
Semantics
The boundary of the polygon is the union of the boundaries of the exterior and interiors. The interior is all the points inside the polygon (not on the boundary).
The Polygon
structure guarantees that all exterior and interior rings will
be closed, such that the first and last Coordinate
of each ring has
the same value.
Validity
-
The exterior and interior rings must be valid
LinearRing
s (seeLineString
). -
No two rings in the boundary may cross, and may intersect at a
Point
only as a tangent. In other words, the rings must be distinct, and for every pair of common points in two of the rings, there must be a neighborhood (a topological open set) around one that does not contain the other point. -
The closure of the interior of the
Polygon
must equal thePolygon
itself. For instance, the exterior may not contain a spike. -
The interior of the polygon must be a connected point-set. That is, any two distinct points in the interior must admit a curve between these two that lies in the interior.
Refer to section 6.1.11.1 of the OGC-SFA for a formal
definition of validity. Besides the closed LineString
guarantee, the Polygon
structure does not enforce
validity at this time. For example, it is possible to
construct a Polygon
that has:
- fewer than 3 coordinates per
LineString
ring - interior rings that intersect other interior rings
- interior rings that extend beyond the exterior ring
LineString
closing operation
Some APIs on Polygon
result in a closing operation on a LineString
. The
operation is as follows:
If a LineString
’s first and last Coordinate
have different values, a
new Coordinate
will be appended to the LineString
with a value equal to
the first Coordinate
.
Implementations
impl<T> Polygon<T> where
T: CoordNum,
[src]
T: CoordNum,
pub fn new(
exterior: LineString<T>,
interiors: Vec<LineString<T>, Global>
) -> Polygon<T>
[src]
exterior: LineString<T>,
interiors: Vec<LineString<T>, Global>
) -> Polygon<T>
Create a new Polygon
with the provided exterior LineString
ring and
interior LineString
rings.
Upon calling new
, the exterior and interior LineString
rings will
be closed.
Examples
Creating a Polygon
with no interior rings:
use geo_types::{LineString, Polygon}; let polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), vec![], );
Creating a Polygon
with an interior ring:
use geo_types::{LineString, Polygon}; let polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), vec![LineString::from(vec![ (0.1, 0.1), (0.9, 0.9), (0.9, 0.1), (0.1, 0.1), ])], );
If the first and last Coordinate
s of the exterior or interior
LineString
s no longer match, those LineString
s will be closed:
use geo_types::{Coordinate, LineString, Polygon}; let mut polygon = Polygon::new(LineString::from(vec![(0., 0.), (1., 1.), (1., 0.)]), vec![]); assert_eq!( polygon.exterior(), &LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.),]) );
pub fn into_inner(self) -> (LineString<T>, Vec<LineString<T>, Global>)
[src]
Consume the Polygon
, returning the exterior LineString
ring and
a vector of the interior LineString
rings.
Examples
use geo_types::{LineString, Polygon}; let mut polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), vec![LineString::from(vec![ (0.1, 0.1), (0.9, 0.9), (0.9, 0.1), (0.1, 0.1), ])], ); let (exterior, interiors) = polygon.into_inner(); assert_eq!( exterior, LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.),]) ); assert_eq!( interiors, vec![LineString::from(vec![ (0.1, 0.1), (0.9, 0.9), (0.9, 0.1), (0.1, 0.1), ])] );
pub fn exterior(&self) -> &LineString<T>
[src]
Return a reference to the exterior LineString
ring.
Examples
use geo_types::{LineString, Polygon}; let exterior = LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]); let polygon = Polygon::new(exterior.clone(), vec![]); assert_eq!(polygon.exterior(), &exterior);
pub fn exterior_mut<F>(&mut self, f: F) where
F: FnOnce(&mut LineString<T>),
[src]
F: FnOnce(&mut LineString<T>),
Execute the provided closure f
, which is provided with a mutable
reference to the exterior LineString
ring.
After the closure executes, the exterior LineString
will be closed.
Examples
use geo_types::{Coordinate, LineString, Polygon}; let mut polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), vec![], ); polygon.exterior_mut(|exterior| { exterior.0[1] = Coordinate { x: 1., y: 2. }; }); assert_eq!( polygon.exterior(), &LineString::from(vec![(0., 0.), (1., 2.), (1., 0.), (0., 0.),]) );
If the first and last Coordinate
s of the exterior LineString
no
longer match, the LineString
will be closed:
use geo_types::{Coordinate, LineString, Polygon}; let mut polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), vec![], ); polygon.exterior_mut(|exterior| { exterior.0[0] = Coordinate { x: 0., y: 1. }; }); assert_eq!( polygon.exterior(), &LineString::from(vec![(0., 1.), (1., 1.), (1., 0.), (0., 0.), (0., 1.),]) );
pub fn interiors(&self) -> &[LineString<T>]
[src]
Return a slice of the interior LineString
rings.
Examples
use geo_types::{Coordinate, LineString, Polygon}; let interiors = vec![LineString::from(vec![ (0.1, 0.1), (0.9, 0.9), (0.9, 0.1), (0.1, 0.1), ])]; let polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), interiors.clone(), ); assert_eq!(interiors, polygon.interiors());
pub fn interiors_mut<F>(&mut self, f: F) where
F: FnOnce(&mut [LineString<T>]),
[src]
F: FnOnce(&mut [LineString<T>]),
Execute the provided closure f
, which is provided with a mutable
reference to the interior LineString
rings.
After the closure executes, each of the interior LineString
s will be
closed.
Examples
use geo_types::{Coordinate, LineString, Polygon}; let mut polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), vec![LineString::from(vec![ (0.1, 0.1), (0.9, 0.9), (0.9, 0.1), (0.1, 0.1), ])], ); polygon.interiors_mut(|interiors| { interiors[0].0[1] = Coordinate { x: 0.8, y: 0.8 }; }); assert_eq!( polygon.interiors(), &[LineString::from(vec![ (0.1, 0.1), (0.8, 0.8), (0.9, 0.1), (0.1, 0.1), ])] );
If the first and last Coordinate
s of any interior LineString
no
longer match, those LineString
s will be closed:
use geo_types::{Coordinate, LineString, Polygon}; let mut polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), vec![LineString::from(vec![ (0.1, 0.1), (0.9, 0.9), (0.9, 0.1), (0.1, 0.1), ])], ); polygon.interiors_mut(|interiors| { interiors[0].0[0] = Coordinate { x: 0.1, y: 0.2 }; }); assert_eq!( polygon.interiors(), &[LineString::from(vec![ (0.1, 0.2), (0.9, 0.9), (0.9, 0.1), (0.1, 0.1), (0.1, 0.2), ])] );
pub fn interiors_push(&mut self, new_interior: impl Into<LineString<T>>)
[src]
Add an interior ring to the Polygon
.
The new LineString
interior ring will be closed:
Examples
use geo_types::{Coordinate, LineString, Polygon}; let mut polygon = Polygon::new( LineString::from(vec![(0., 0.), (1., 1.), (1., 0.), (0., 0.)]), vec![], ); assert_eq!(polygon.interiors().len(), 0); polygon.interiors_push(vec![(0.1, 0.1), (0.9, 0.9), (0.9, 0.1)]); assert_eq!( polygon.interiors(), &[LineString::from(vec![ (0.1, 0.1), (0.9, 0.9), (0.9, 0.1), (0.1, 0.1), ])] );
impl<T> Polygon<T> where
T: CoordFloat + Signed,
[src]
T: CoordFloat + Signed,
pub fn is_convex(&self) -> bool
[src]
Please use geo::is_convex
on poly.exterior()
instead
Determine whether a Polygon is convex
Trait Implementations
impl<T> Area<T> for Polygon<T> where
T: CoordFloat,
[src]
T: CoordFloat,
Note. The implementation handles polygons whose holes do not all have the same orientation. The sign of the output is the same as that of the exterior shell.
pub fn signed_area(&self) -> T
[src]
pub fn unsigned_area(&self) -> T
[src]
impl<T> BoundingRect<T> for Polygon<T> where
T: CoordNum,
[src]
T: CoordNum,
type Output = Option<Rect<T>>
pub fn bounding_rect(&self) -> Self::Output
[src]
Return the BoundingRect for a Polygon
impl<T> Centroid for Polygon<T> where
T: CoordFloat + FromPrimitive + Sum,
[src]
T: CoordFloat + FromPrimitive + Sum,
impl<T> ChamberlainDuquetteArea<T> for Polygon<T> where
T: Float + CoordNum,
[src]
T: Float + CoordNum,
pub fn chamberlain_duquette_signed_area(&self) -> T
[src]
pub fn chamberlain_duquette_unsigned_area(&self) -> T
[src]
impl<T> Clone for Polygon<T> where
T: Clone + CoordNum,
[src]
T: Clone + CoordNum,
impl<F: GeoFloat> ClosestPoint<F, Point<F>> for Polygon<F>
[src]
pub fn closest_point(&self, p: &Point<F>) -> Closest<F>
[src]
impl<T> ConcaveHull for Polygon<T> where
T: GeoFloat + RTreeNum,
[src]
T: GeoFloat + RTreeNum,
impl<T> Contains<Coordinate<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
pub fn contains(&self, coord: &Coordinate<T>) -> bool
[src]
impl<T> Contains<Line<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
impl<T> Contains<LineString<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
pub fn contains(&self, linestring: &LineString<T>) -> bool
[src]
impl<T> Contains<Point<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
impl<T> Contains<Polygon<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
impl<T> ConvexHull for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
type Scalar = T
pub fn convex_hull(&self) -> Polygon<T>
[src]
impl<T> CoordinatePosition for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
type Scalar = T
pub fn calculate_coordinate_position(
&self,
coord: &Coordinate<T>,
is_inside: &mut bool,
boundary_count: &mut usize
)
[src]
&self,
coord: &Coordinate<T>,
is_inside: &mut bool,
boundary_count: &mut usize
)
pub fn coordinate_position(&self, coord: &Coordinate<Self::Scalar>) -> CoordPos
[src]
impl<'a, T: CoordNum + 'a> CoordsIter<'a> for Polygon<T>
[src]
type Iter = Chain<Copied<Iter<'a, Coordinate<T>>>, Flatten<MapCoordsIter<'a, T, Iter<'a, LineString<T>>, LineString<T>>>>
type ExteriorIter = Copied<Iter<'a, Coordinate<T>>>
type Scalar = T
pub fn coords_iter(&'a self) -> Self::Iter
[src]
pub fn coords_count(&'a self) -> usize
[src]
Return the number of coordinates in the Polygon
.
pub fn exterior_coords_iter(&'a self) -> Self::ExteriorIter
[src]
impl<T> Debug for Polygon<T> where
T: Debug + CoordNum,
[src]
T: Debug + CoordNum,
impl<T> Eq for Polygon<T> where
T: Eq + CoordNum,
[src]
T: Eq + CoordNum,
impl<T> EuclideanDistance<T, Line<T>> for Polygon<T> where
T: GeoFloat + FloatConst + Signed + RTreeNum,
[src]
T: GeoFloat + FloatConst + Signed + RTreeNum,
pub fn euclidean_distance(&self, other: &Line<T>) -> T
[src]
impl<T> EuclideanDistance<T, LineString<T>> for Polygon<T> where
T: GeoFloat + FloatConst + Signed + RTreeNum,
[src]
T: GeoFloat + FloatConst + Signed + RTreeNum,
Polygon to LineString distance
pub fn euclidean_distance(&self, other: &LineString<T>) -> T
[src]
impl<T> EuclideanDistance<T, Point<T>> for Polygon<T> where
T: GeoFloat,
[src]
T: GeoFloat,
pub fn euclidean_distance(&self, point: &Point<T>) -> T
[src]
Minimum distance from a Polygon to a Point
impl<T> EuclideanDistance<T, Polygon<T>> for Point<T> where
T: GeoFloat,
[src]
T: GeoFloat,
pub fn euclidean_distance(&self, polygon: &Polygon<T>) -> T
[src]
Minimum distance from a Point to a Polygon
impl<T> EuclideanDistance<T, Polygon<T>> for Line<T> where
T: GeoFloat + Signed + RTreeNum + FloatConst,
[src]
T: GeoFloat + Signed + RTreeNum + FloatConst,
pub fn euclidean_distance(&self, other: &Polygon<T>) -> T
[src]
impl<T> EuclideanDistance<T, Polygon<T>> for LineString<T> where
T: GeoFloat + FloatConst + Signed + RTreeNum,
[src]
T: GeoFloat + FloatConst + Signed + RTreeNum,
LineString to Polygon
pub fn euclidean_distance(&self, other: &Polygon<T>) -> T
[src]
impl<T> EuclideanDistance<T, Polygon<T>> for Polygon<T> where
T: GeoFloat + FloatConst + RTreeNum,
[src]
T: GeoFloat + FloatConst + RTreeNum,
pub fn euclidean_distance(&self, poly2: &Polygon<T>) -> T
[src]
This implementation has a "fast path" in cases where both input polygons are convex: it switches to an implementation of the "rotating calipers" method described in Pirzadeh (1999), pp24—30, which is approximately an order of magnitude faster than the standard method.
impl<T> From<Polygon<T>> for Geometry<T> where
T: CoordNum,
[src]
T: CoordNum,
impl<T> From<Rect<T>> for Polygon<T> where
T: CoordNum,
[src]
T: CoordNum,
impl<T> From<Triangle<T>> for Polygon<T> where
T: CoordNum,
[src]
T: CoordNum,
impl<C: CoordNum> HasDimensions for Polygon<C>
[src]
pub fn is_empty(&self) -> bool
[src]
pub fn dimensions(&self) -> Dimensions
[src]
pub fn boundary_dimensions(&self) -> Dimensions
[src]
impl<T> Hash for Polygon<T> where
T: Hash + CoordNum,
[src]
T: Hash + CoordNum,
pub fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,
[src]
__H: Hasher,
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<T> Intersects<Coordinate<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
pub fn intersects(&self, p: &Coordinate<T>) -> bool
[src]
impl<T> Intersects<Geometry<T>> for Polygon<T> where
Geometry<T>: Intersects<Polygon<T>>,
T: CoordNum,
[src]
Geometry<T>: Intersects<Polygon<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &Geometry<T>) -> bool
[src]
impl<T> Intersects<GeometryCollection<T>> for Polygon<T> where
GeometryCollection<T>: Intersects<Polygon<T>>,
T: CoordNum,
[src]
GeometryCollection<T>: Intersects<Polygon<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &GeometryCollection<T>) -> bool
[src]
impl<T> Intersects<Line<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
pub fn intersects(&self, line: &Line<T>) -> bool
[src]
impl<T> Intersects<LineString<T>> for Polygon<T> where
LineString<T>: Intersects<Polygon<T>>,
T: CoordNum,
[src]
LineString<T>: Intersects<Polygon<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &LineString<T>) -> bool
[src]
impl<T> Intersects<MultiLineString<T>> for Polygon<T> where
MultiLineString<T>: Intersects<Polygon<T>>,
T: CoordNum,
[src]
MultiLineString<T>: Intersects<Polygon<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &MultiLineString<T>) -> bool
[src]
impl<T> Intersects<MultiPoint<T>> for Polygon<T> where
MultiPoint<T>: Intersects<Polygon<T>>,
T: CoordNum,
[src]
MultiPoint<T>: Intersects<Polygon<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &MultiPoint<T>) -> bool
[src]
impl<T> Intersects<MultiPolygon<T>> for Polygon<T> where
MultiPolygon<T>: Intersects<Polygon<T>>,
T: CoordNum,
[src]
MultiPolygon<T>: Intersects<Polygon<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &MultiPolygon<T>) -> bool
[src]
impl<T> Intersects<Point<T>> for Polygon<T> where
Point<T>: Intersects<Polygon<T>>,
T: CoordNum,
[src]
Point<T>: Intersects<Polygon<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &Point<T>) -> bool
[src]
impl<T> Intersects<Polygon<T>> for Coordinate<T> where
Polygon<T>: Intersects<Coordinate<T>>,
T: CoordNum,
[src]
Polygon<T>: Intersects<Coordinate<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &Polygon<T>) -> bool
[src]
impl<T> Intersects<Polygon<T>> for Line<T> where
Polygon<T>: Intersects<Line<T>>,
T: CoordNum,
[src]
Polygon<T>: Intersects<Line<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &Polygon<T>) -> bool
[src]
impl<T> Intersects<Polygon<T>> for Rect<T> where
Polygon<T>: Intersects<Rect<T>>,
T: CoordNum,
[src]
Polygon<T>: Intersects<Rect<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &Polygon<T>) -> bool
[src]
impl<T> Intersects<Polygon<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
pub fn intersects(&self, polygon: &Polygon<T>) -> bool
[src]
impl<T> Intersects<Rect<T>> for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
pub fn intersects(&self, rect: &Rect<T>) -> bool
[src]
impl<T> Intersects<Triangle<T>> for Polygon<T> where
Triangle<T>: Intersects<Polygon<T>>,
T: CoordNum,
[src]
Triangle<T>: Intersects<Polygon<T>>,
T: CoordNum,
pub fn intersects(&self, rhs: &Triangle<T>) -> bool
[src]
impl<T: CoordNum, NT: CoordNum> MapCoords<T, NT> for Polygon<T>
[src]
type Output = Polygon<NT>
pub fn map_coords(
&self,
func: impl Fn(&(T, T)) -> (NT, NT) + Copy
) -> Self::Output
[src]
&self,
func: impl Fn(&(T, T)) -> (NT, NT) + Copy
) -> Self::Output
impl<T: CoordNum> MapCoordsInplace<T> for Polygon<T>
[src]
impl<T> Orient for Polygon<T> where
T: GeoNum,
[src]
T: GeoNum,
impl<T> PartialEq<Polygon<T>> for Polygon<T> where
T: PartialEq<T> + CoordNum,
[src]
T: PartialEq<T> + CoordNum,
impl<T> Rotate<T> for Polygon<T> where
T: CoordFloat + FromPrimitive + Sum,
[src]
T: CoordFloat + FromPrimitive + Sum,
pub fn rotate(&self, angle: T) -> Self
[src]
Rotate the Polygon about its centroid by the given number of degrees
impl<T> Simplify<T, T> for Polygon<T> where
T: GeoFloat,
[src]
T: GeoFloat,
impl<T> SimplifyVW<T, T> for Polygon<T> where
T: CoordFloat,
[src]
T: CoordFloat,
pub fn simplifyvw(&self, epsilon: &T) -> Polygon<T>
[src]
impl<T> SimplifyVWPreserve<T, T> for Polygon<T> where
T: CoordFloat + RTreeNum,
[src]
T: CoordFloat + RTreeNum,
pub fn simplifyvw_preserve(&self, epsilon: &T) -> Polygon<T>
[src]
impl<T> StructuralEq for Polygon<T> where
T: CoordNum,
[src]
T: CoordNum,
impl<T> StructuralPartialEq for Polygon<T> where
T: CoordNum,
[src]
T: CoordNum,
impl<T> TryFrom<Geometry<T>> for Polygon<T> where
T: CoordNum,
[src]
T: CoordNum,
type Error = FailedToConvertError
The type returned in the event of a conversion error.
pub fn try_from(
geom: Geometry<T>
) -> Result<Polygon<T>, <Polygon<T> as TryFrom<Geometry<T>>>::Error>
[src]
geom: Geometry<T>
) -> Result<Polygon<T>, <Polygon<T> as TryFrom<Geometry<T>>>::Error>
impl<T: CoordNum, NT: CoordNum> TryMapCoords<T, NT> for Polygon<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for Polygon<T> where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Send for Polygon<T> where
T: Send,
[src]
T: Send,
impl<T> Sync for Polygon<T> where
T: Sync,
[src]
T: Sync,
impl<T> Unpin for Polygon<T> where
T: Unpin,
[src]
T: Unpin,
impl<T> UnwindSafe for Polygon<T> where
T: UnwindSafe,
[src]
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<'a, T, G> Extremes<'a, T> for G where
T: CoordNum,
G: CoordsIter<'a, Scalar = T>,
[src]
T: CoordNum,
G: CoordsIter<'a, Scalar = T>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, G> RotatePoint<T> for G where
T: CoordFloat,
G: MapCoords<T, T, Output = G>,
[src]
T: CoordFloat,
G: MapCoords<T, T, Output = G>,
pub fn rotate_around_point(&Self, T, Point<T>) -> G
[src]
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, G> Translate<T> for G where
T: CoordNum,
G: MapCoords<T, T, Output = G> + MapCoordsInplace<T>,
[src]
T: CoordNum,
G: MapCoords<T, T, Output = G> + MapCoordsInplace<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,