diff --git a/CHANGES.md b/CHANGES.md index 367deda04..c989090c7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,10 @@ ## Unreleased +- **Breaking**: `Dataset::raster_count` now returns an `usize` and `Dataset::rasterband` now takes `usize` instead of `isize` + + - + ## 0.16 - **Breaking**: `Dataset::close` now consumes `self` diff --git a/src/dataset.rs b/src/dataset.rs index 1a1139864..0424bfb75 100644 --- a/src/dataset.rs +++ b/src/dataset.rs @@ -544,7 +544,7 @@ impl Dataset { /// /// Applies to raster datasets, and fetches the /// rasterband at the given _1-based_ index. - pub fn rasterband(&self, band_index: isize) -> Result { + pub fn rasterband(&self, band_index: usize) -> Result { unsafe { let c_band = gdal_sys::GDALGetRasterBand(self.c_dataset, band_index as c_int); if c_band.is_null() { @@ -667,8 +667,8 @@ impl Dataset { } /// Fetch the number of raster bands on this dataset. - pub fn raster_count(&self) -> isize { - (unsafe { gdal_sys::GDALGetRasterCount(self.c_dataset) }) as isize + pub fn raster_count(&self) -> usize { + (unsafe { gdal_sys::GDALGetRasterCount(self.c_dataset) }) as usize } /// Returns the raster dimensions: (width, height). diff --git a/src/raster/rasterize.rs b/src/raster/rasterize.rs index baf3d2b8d..bcd9ba3f2 100644 --- a/src/raster/rasterize.rs +++ b/src/raster/rasterize.rs @@ -161,7 +161,7 @@ mod tests { /// may be of any GDAL supported datatype. pub fn rasterize( dataset: &mut Dataset, - bands: &[isize], + bands: &[usize], geometries: &[Geometry], burn_values: &[f64], options: Option, @@ -178,8 +178,9 @@ pub fn rasterize( geometries.len() ))); } + let raster_count = dataset.raster_count(); for band in bands { - let is_good = *band > 0 && *band <= dataset.raster_count(); + let is_good = *band > 0 && *band <= raster_count; if !is_good { return Err(GdalError::BadArgument(format!( "Band index {} is out of bounds",