use crate::*;


pub struct Bedrock<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF> {
    pub mem: ProgramMemory,
    pub wst: Stack,
    pub rst: Stack,
    pub dev: DeviceBus<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF>,
    pub cyc: usize,
}

impl<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF> Bedrock<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF> {
    pub fn new(device_bus: DeviceBus<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF>) -> Self {
        Self {
            mem: ProgramMemory::new(),
            wst: Stack::new(),
            rst: Stack::new(),
            dev: device_bus,
            cyc: 0,
        }
    }
}