use crate::record::Builder as RecordBuilder;
use crate::History;
#[derive(Debug)]
pub struct Builder<E, S = ()>(RecordBuilder<E, S>);
impl<E, S> Builder<E, S> {
pub fn capacity(self, capacity: usize) -> Builder<E, S> {
Builder(self.0.capacity(capacity))
}
pub fn limit(self, limit: usize) -> Builder<E, S> {
Builder(self.0.limit(limit))
}
pub fn saved(self, saved: bool) -> Builder<E, S> {
Builder(self.0.saved(saved))
}
pub fn connect(self, slot: S) -> Builder<E, S> {
Builder(self.0.connect(slot))
}
pub fn build(self) -> History<E, S> {
History::from(self.0.build())
}
}
impl<E, S> Default for Builder<E, S> {
fn default() -> Self {
Builder(RecordBuilder::default())
}
}