namespace StoneRed.LogicSimulator.Simulation;
///
/// Defines the types of logic gates available in the circuit simulator.
///
public enum GateKind : byte
{
///
/// An input gate that can have its value set externally via .
/// Used as circuit inputs or constant values.
///
Source,
///
/// A NOT gate that inverts its input (0 → 1, 1 → 0).
///
Not,
///
/// A 2-input AND gate. Output is 1 only when both inputs are 1.
///
And2,
///
/// A 2-input OR gate. Output is 1 when at least one input is 1.
///
Or2,
///
/// A buffer gate that passes its input directly to the output.
/// Used for signal routing or as macro gate input pins.
///
Buffer,
///
/// A sink gate that receives input but produces no useful output.
/// Used as circuit outputs or macro gate output pins.
///
Sink,
///
/// A Look-Up Table gate implementing arbitrary combinational logic via a truth table.
/// Created using instead of .
///
Lut,
}