File tree Expand file tree Collapse file tree 11 files changed +21
-58
lines changed Expand file tree Collapse file tree 11 files changed +21
-58
lines changed Original file line number Diff line number Diff line change 33## Unreleased
44
55- Don't panic when parsing invalid WKB (#74 ).
6- - Fix CI by removing georust container & fix clippy lint (#140 )
6+ - Fix CI by removing georust container & fix clippy lint (#78 )
7+ - Remove unnecessary ` unwrap ` s #79
78
89## 0.9.0 - 2025-05-14
910
Original file line number Diff line number Diff line change @@ -23,6 +23,10 @@ pub enum WkbError {
2323 /// [std::io::Error]
2424 #[ error( transparent) ]
2525 IOError ( #[ from] std:: io:: Error ) ,
26+
27+ /// Overflow when casting to a u32 to write to WKB buffer
28+ #[ error( transparent) ]
29+ OverflowError ( #[ from] std:: num:: TryFromIntError ) ,
2630}
2731
2832/// Crate-specific result type.
Original file line number Diff line number Diff line change @@ -122,7 +122,7 @@ impl<'a> LineStringTrait for LinearRing<'a> {
122122 Coord :: new (
123123 self . buf ,
124124 self . byte_order ,
125- self . coord_offset ( i. try_into ( ) . unwrap ( ) ) ,
125+ self . coord_offset ( i as u64 ) ,
126126 self . dim ,
127127 )
128128 }
@@ -144,7 +144,7 @@ impl<'a> LineStringTrait for &LinearRing<'a> {
144144 Coord :: new (
145145 self . buf ,
146146 self . byte_order ,
147- self . coord_offset ( i. try_into ( ) . unwrap ( ) ) ,
147+ self . coord_offset ( i as u64 ) ,
148148 self . dim ,
149149 )
150150 }
Original file line number Diff line number Diff line change @@ -122,7 +122,7 @@ impl<'a> LineStringTrait for LineString<'a> {
122122 Coord :: new (
123123 self . buf ,
124124 self . byte_order ,
125- self . coord_offset ( i. try_into ( ) . unwrap ( ) ) ,
125+ self . coord_offset ( i as u64 ) ,
126126 self . dim ,
127127 )
128128 }
@@ -142,7 +142,7 @@ impl<'a> LineStringTrait for &LineString<'a> {
142142 Coord :: new (
143143 self . buf ,
144144 self . byte_order ,
145- self . coord_offset ( i. try_into ( ) . unwrap ( ) ) ,
145+ self . coord_offset ( i as u64 ) ,
146146 self . dim ,
147147 )
148148 }
Original file line number Diff line number Diff line change @@ -116,7 +116,7 @@ impl<'a> MultiPointTrait for MultiPoint<'a> {
116116 Point :: new (
117117 self . buf ,
118118 self . byte_order ,
119- self . point_offset ( i. try_into ( ) . unwrap ( ) ) ,
119+ self . point_offset ( i as u64 ) ,
120120 self . dim ,
121121 )
122122 }
@@ -136,7 +136,7 @@ impl<'a> MultiPointTrait for &MultiPoint<'a> {
136136 Point :: new (
137137 self . buf ,
138138 self . byte_order ,
139- self . point_offset ( i. try_into ( ) . unwrap ( ) ) ,
139+ self . point_offset ( i as u64 ) ,
140140 self . dim ,
141141 )
142142 }
Original file line number Diff line number Diff line change @@ -47,36 +47,11 @@ fn write_geometry_collection_content<B: ByteOrder>(
4747 writer. write_u32 :: < B > ( wkb_type. into ( ) ) ?;
4848
4949 // numGeometries
50- writer. write_u32 :: < B > ( geom. num_geometries ( ) . try_into ( ) . unwrap ( ) ) ?;
50+ writer. write_u32 :: < B > ( geom. num_geometries ( ) . try_into ( ) ? ) ?;
5151
5252 for inner_geom in geom. geometries ( ) {
5353 write_geometry ( writer, & inner_geom, options) ?;
5454 }
5555
5656 Ok ( ( ) )
5757}
58-
59- // #[cfg(test)]
60- // mod test {
61- // use super::*;
62- // use crate::test::multipoint;
63- // use crate::test::multipolygon;
64-
65- // #[test]
66- // fn round_trip() {
67- // let gc0 = geo::GeometryCollection::new_from(vec![
68- // geo::Geometry::MultiPoint(multipoint::mp0()),
69- // geo::Geometry::MultiPolygon(multipolygon::mp0()),
70- // ]);
71- // let gc1 = geo::GeometryCollection::new_from(vec![
72- // geo::Geometry::MultiPoint(multipoint::mp1()),
73- // geo::Geometry::MultiPolygon(multipolygon::mp1()),
74- // ]);
75-
76- // let orig_arr: GeometryCollectionArray<i32> = vec![Some(gc0), Some(gc1), None].into();
77- // let wkb_arr: WKBArray<i32> = (&orig_arr).into();
78- // let new_arr: GeometryCollectionArray<i32> = wkb_arr.try_into().unwrap();
79-
80- // assert_eq!(orig_arr, new_arr);
81- // }
82- // }
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ pub fn write_line_string(
2222 options : & WriteOptions ,
2323) -> WkbResult < ( ) > {
2424 // Byte order
25- writer. write_u8 ( options. endianness . into ( ) ) . unwrap ( ) ;
25+ writer. write_u8 ( options. endianness . into ( ) ) ? ;
2626
2727 // Content
2828 match options. endianness {
@@ -39,9 +39,7 @@ fn write_line_string_content<B: ByteOrder>(
3939 writer. write_u32 :: < B > ( wkb_type. into ( ) ) ?;
4040
4141 // numPoints
42- writer
43- . write_u32 :: < B > ( geom. num_coords ( ) . try_into ( ) . unwrap ( ) )
44- . unwrap ( ) ;
42+ writer. write_u32 :: < B > ( geom. num_coords ( ) . try_into ( ) ?) ?;
4543
4644 for coord in geom. coords ( ) {
4745 write_coord :: < B > ( writer, & coord) ?;
Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ fn write_multi_line_string_content<B: ByteOrder>(
4646 writer. write_u32 :: < B > ( wkb_type. into ( ) ) ?;
4747
4848 // numPoints
49- writer. write_u32 :: < B > ( geom. num_line_strings ( ) . try_into ( ) . unwrap ( ) ) ?;
49+ writer. write_u32 :: < B > ( geom. num_line_strings ( ) . try_into ( ) ? ) ?;
5050
5151 for line_string in geom. line_strings ( ) {
5252 write_line_string ( writer, & line_string, options) ?;
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ fn write_multi_point_content<B: ByteOrder>(
3939 writer. write_u32 :: < B > ( wkb_type. into ( ) ) ?;
4040
4141 // numPoints
42- writer. write_u32 :: < B > ( geom. num_points ( ) . try_into ( ) . unwrap ( ) ) ?;
42+ writer. write_u32 :: < B > ( geom. num_points ( ) . try_into ( ) ? ) ?;
4343
4444 for point in geom. points ( ) {
4545 write_point ( writer, & point, options) ?;
Original file line number Diff line number Diff line change @@ -44,26 +44,11 @@ fn write_multi_polygon_content<B: ByteOrder>(
4444 writer. write_u32 :: < B > ( wkb_type. into ( ) ) ?;
4545
4646 // numPolygons
47- writer. write_u32 :: < B > ( geom. num_polygons ( ) . try_into ( ) . unwrap ( ) ) ?;
47+ writer. write_u32 :: < B > ( geom. num_polygons ( ) . try_into ( ) ? ) ?;
4848
4949 for polygon in geom. polygons ( ) {
5050 write_polygon ( writer, & polygon, options) ?;
5151 }
5252
5353 Ok ( ( ) )
5454}
55-
56- // #[cfg(test)]
57- // mod test {
58- // use super::*;
59- // use crate::test::multipolygon::{mp0, mp1};
60-
61- // #[test]
62- // fn round_trip() {
63- // let orig_arr: MultiPolygonArray<2> = vec![Some(mp0()), Some(mp1()), None].into();
64- // let wkb_arr: WKBArray<i32> = (&orig_arr).into();
65- // let new_arr: MultiPolygonArray<2> = wkb_arr.try_into().unwrap();
66-
67- // assert_eq!(orig_arr, new_arr);
68- // }
69- // }
You can’t perform that action at this time.
0 commit comments