Skip to content

Commit 344cab5

Browse files
authored
chore: Remove unnecessary unwraps (#79)
* Remove a few unneeded unwraps * Add OverflowError * Update changelog
1 parent bf06384 commit 344cab5

File tree

11 files changed

+21
-58
lines changed

11 files changed

+21
-58
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
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

src/error.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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.

src/reader/linearring.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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
}

src/reader/linestring.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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
}

src/reader/multipoint.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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
}

src/writer/geometrycollection.rs

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff 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-
// }

src/writer/linestring.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff 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)?;

src/writer/multilinestring.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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)?;

src/writer/multipoint.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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)?;

src/writer/multipolygon.rs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff 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-
// }

0 commit comments

Comments
 (0)