use std::pin::Pin;
use futures::Future;
use tc_error::*;
use tc_transact::fs::Dir;
use tc_transact::Transaction;
use tc_value::Number;
use super::Coord;
pub use sorted::*;
mod sorted;
pub type Read<'a> = Pin<Box<dyn Future<Output = TCResult<(Coord, Number)>> + Send + 'a>>;
pub trait ReadValueAt<D: Dir> {
type Txn: Transaction<D>;
fn read_value_at<'a>(self, txn: Self::Txn, coord: Coord) -> Read<'a>;
}