mod missing;
pub use missing::*;
mod table;
pub use table::*;
mod trajectory;
pub use trajectory::*;
use crate::{
models::Labelled,
types::{Result, Set},
};
pub trait Dataset: Labelled {
type Values;
type Evidence;
type EvidenceIter<'a>: Iterator<Item = Result<Self::Evidence>>
where
Self: 'a;
fn values(&self) -> &Self::Values;
fn evidence_iter(&self) -> Self::EvidenceIter<'_>;
fn sample_size(&self) -> f64;
fn select(&self, x: &Set<usize>) -> Result<Self>
where
Self: Sized;
}