use super::Batch;
use anyhow::Result;
pub trait ReplayBufferBase {
type Config: Clone;
type PushedItem;
type Batch: Batch;
fn build(config: &Self::Config) -> Self;
fn len(&self) -> usize;
fn batch(&mut self, size: usize) -> Result<Self::Batch>;
fn push(&mut self, tr: Self::PushedItem) -> Result<()>;
fn update_priority(&mut self, ixs: &Option<Vec<usize>>, td_err: &Option<Vec<f32>>);
}