Skip to content

Commit

Permalink
Converted RasterBand to foreign_types
Browse files Browse the repository at this point in the history
  • Loading branch information
metasim committed May 23, 2023
1 parent 10a1310 commit 877c8ea
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 113 deletions.
3 changes: 1 addition & 2 deletions examples/rasterband.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use gdal::raster::RasterBand;
use gdal::{Dataset, Metadata};
use std::path::Path;

Expand All @@ -7,7 +6,7 @@ fn main() {
let dataset = Dataset::open(path).unwrap();
println!("dataset description: {:?}", dataset.description());

let rasterband: RasterBand = dataset.rasterband(1).unwrap();
let rasterband = dataset.rasterband(1).unwrap();
println!("rasterband description: {:?}", rasterband.description());
println!("rasterband no_data_value: {:?}", rasterband.no_data_value());
println!("rasterband type: {:?}", rasterband.band_type());
Expand Down
12 changes: 5 additions & 7 deletions src/dataset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -499,14 +499,12 @@ impl Dataset {
///
/// Applies to raster datasets, and fetches the
/// rasterband at the given _1-based_ index.
pub fn rasterband(&self, band_index: isize) -> Result<RasterBand> {
unsafe {
let c_band = gdal_sys::GDALGetRasterBand(self.c_dataset, band_index as c_int);
if c_band.is_null() {
return Err(_last_null_pointer_err("GDALGetRasterBand"));
}
Ok(RasterBand::from_c_rasterband(self, c_band))
pub fn rasterband(&self, band_index: isize) -> Result<&mut RasterBand> {
let c_band = unsafe { gdal_sys::GDALGetRasterBand(self.c_dataset, band_index as c_int)};
if c_band.is_null() {
return Err(_last_null_pointer_err("GDALGetRasterBand"));
}
Ok(unsafe { RasterBand::from_ptr_mut(c_band)} )
}

/// Opens the root group of a multi-dim GDAL raster
Expand Down
2 changes: 1 addition & 1 deletion src/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ mod tests {
fn test_set_description() {
let driver = DriverManager::get_driver_by_name("MEM").unwrap();
let dataset = driver.create("", 1, 1, 1).unwrap();
let mut band = dataset.rasterband(1).unwrap();
let band = dataset.rasterband(1).unwrap();

let description = "A merry and cheerful band description";
assert_eq!(band.description().unwrap(), "");
Expand Down
Loading

0 comments on commit 877c8ea

Please sign in to comment.