rust_play_digital/
initsig.rs1use std::rc::Rc;
2use crate::common::Digital;
3use crate::Digital1Line;
4use crate::output::{DigitalState, State};
5#[allow(unused)]
6#[derive(Debug, Clone)]
8pub struct InitSig {
9 output_state: DigitalState,
10 times: usize,
11}
12impl Digital1Line for InitSig{}
13impl Digital for InitSig {
14 fn get_output(&self) -> DigitalState {
15 self.output_state.clone()
16 }
17}
18impl InitSig {
19 pub fn new(output_state: Vec<Option<State>>) -> Rc<Self> {
20 let times = output_state.len();
21 let output_state = DigitalState::new(vec![output_state.clone()], 1, times);
22 Rc::new(Self {
23 output_state,
24 times,
25 })
26 }
27
28 pub fn output_state(&self) -> DigitalState {
29 self.output_state.clone()
30 }
31
32 pub fn times(&self) -> usize {
33 self.times
34 }
35}