use crate::error::{FdbError, FdbResult};
use crate::future::{
FdbFutureCStringArray, FdbFutureI64, FdbFutureKey, FdbFutureMaybeValue, FdbFutureUnit,
FdbStreamKeyValue,
};
use crate::range::{Range, RangeOptions};
use crate::transaction::TransactionOption;
use crate::{Key, KeySelector};
#[cfg(feature = "fdb-7_1")]
use crate::future::{FdbFutureKeyArray, FdbStreamMappedKeyValue};
#[cfg(feature = "fdb-7_1")]
use crate::Mapper;
pub trait ReadTransaction {
unsafe fn on_error(&self, e: FdbError) -> FdbFutureUnit;
fn get(&self, key: impl Into<Key>) -> FdbFutureMaybeValue;
fn get_addresses_for_key(&self, key: impl Into<Key>) -> FdbFutureCStringArray;
fn get_estimated_range_size_bytes(&self, range: Range) -> FdbFutureI64;
fn get_key(&self, selector: KeySelector) -> FdbFutureKey;
#[cfg(feature = "fdb-7_1")]
fn get_mapped_range(
&self,
begin: KeySelector,
end: KeySelector,
mapper: impl Into<Mapper>,
options: RangeOptions,
) -> FdbStreamMappedKeyValue;
fn get_range(
&self,
begin: KeySelector,
end: KeySelector,
options: RangeOptions,
) -> FdbStreamKeyValue;
#[cfg(feature = "fdb-7_1")]
fn get_range_split_points(
&self,
begin: impl Into<Key>,
end: impl Into<Key>,
chunk_size: i64,
) -> FdbFutureKeyArray;
unsafe fn get_read_version(&self) -> FdbFutureI64;
fn set_option(&self, option: TransactionOption) -> FdbResult<()>;
unsafe fn set_read_version(&self, version: i64);
}