mod missing;
pub use missing::*;
mod table;
pub use table::*;
mod trajectory;
use std::borrow::Cow;
pub use trajectory::*;
use crate::{
models::HasLabels,
types::{Result, Set},
};
pub trait Dataset: HasLabels {
type Values;
type Support: Clone;
type Evidence;
type EvidenceIter<'a>: Iterator<Item = Result<Self::Evidence>>
where
Self: 'a;
fn support(&self) -> Cow<'_, Self::Support>;
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;
}