diff --git a/CHANGES.md b/CHANGES.md index 7694df7b..ef07555d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,9 @@ ## Unreleased +- **Breaking**: Make `set_attribute_filter` and `clear_attribute_filter` take `&mut self` + - + - **Breaking**: Drop pre-build bindings for GDAL versions < 2.4. The bindgen feature can be used to generate bindings for older versions. - Fix memory leaks reported by Valgrind. This required re-generation of the pre-build bindings. - diff --git a/src/vector/layer.rs b/src/vector/layer.rs index a1de4a00..cf162b5e 100644 --- a/src/vector/layer.rs +++ b/src/vector/layer.rs @@ -339,10 +339,12 @@ impl<'a> Layer<'a> { /// Set a new attribute query that restricts features when using the feature iterator. /// + /// From the GDAL docs: Note that installing a query string will generally result in resetting the current reading position + /// /// Parameters: /// - `query` in restricted SQL WHERE format /// - pub fn set_attribute_filter(&self, query: &str) -> Result<()> { + pub fn set_attribute_filter(&mut self, query: &str) -> Result<()> { let c_str = CString::new(query)?; let rv = unsafe { gdal_sys::OGR_L_SetAttributeFilter(self.c_layer, c_str.as_ptr()) }; @@ -357,7 +359,10 @@ impl<'a> Layer<'a> { } /// Clear the attribute filter set on this layer - pub fn clear_attribute_filter(&self) { + /// + /// From the GDAL docs: Note that installing a query string will generally result in resetting the current reading position + /// + pub fn clear_attribute_filter(&mut self) { unsafe { gdal_sys::OGR_L_SetAttributeFilter(self.c_layer, null_mut()); }