mod categorical;
pub use categorical::*;
use crate::{models::graphs::DiGraph, types::Map};
pub trait CTBN {
type CIM;
type InitialDistribution;
type Event;
type Trajectory;
type Trajectories;
fn new<I>(graph: DiGraph, cims: I) -> Self
where
I: IntoIterator<Item = Self::CIM>;
fn initial_distribution(&self) -> &Self::InitialDistribution;
fn graph(&self) -> &DiGraph;
fn cims(&self) -> &Map<String, Self::CIM>;
fn parameters_size(&self) -> usize;
fn with_optionals<I>(
name: Option<String>,
description: Option<String>,
initial_distribution: Self::InitialDistribution,
graph: DiGraph,
cims: I,
) -> Self
where
I: IntoIterator<Item = Self::CIM>;
}