| 12345678910111213141516171819202122232425262728293031 |
- namespace Day20;
- public abstract class Module
- {
- public string Name { get; }
- protected readonly List<Module> _outputs = new List<Module>();
- protected readonly List<Module> _inputs = new List<Module>();
- public IEnumerable<Module> Inputs => _inputs;
- protected Module(string name)
- {
- Name = name;
- }
-
- public abstract string GetState();
- public abstract IEnumerable<Pulse> Process(Pulse p);
- public virtual void Reset() {}
- public void AddOutput(Module destination)
- {
- _outputs.Add(destination);
- }
- public void AddInput(Module source)
- {
- _inputs.Add(source);
- }
- }
|