use std::ops::{Deref, DerefMut};
use gdal_sys::GDALDatasetH;
use crate::vector::{Layer, LayerAccess};
#[derive(Debug)]
pub struct ResultSet<'a> {
pub(crate) layer: Layer<'a>,
pub(crate) dataset: GDALDatasetH,
}
impl<'a> Deref for ResultSet<'a> {
type Target = Layer<'a>;
fn deref(&self) -> &Self::Target {
&self.layer
}
}
impl<'a> DerefMut for ResultSet<'a> {
fn deref_mut(&mut self) -> &mut <Self as Deref>::Target {
&mut self.layer
}
}
impl<'a> Drop for ResultSet<'a> {
fn drop(&mut self) {
unsafe { gdal_sys::GDALDatasetReleaseResultSet(self.dataset, self.layer.c_layer()) };
}
}
#[allow(clippy::upper_case_acronyms)]
pub enum Dialect {
DEFAULT,
OGR,
SQLITE,
}
pub(crate) const OGRSQL: &[u8] = b"OGRSQL\0";
pub(crate) const SQLITE: &[u8] = b"SQLITE\0";