+#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+enum ImmediateShape {
+ S16,
+ U16,
+}
+
+impl InstructionInputName {
+ fn get_immediate_shape(&self) -> Option<ImmediateShape> {
+ match self {
+ InstructionInputName::Ra(_)
+ | InstructionInputName::Rb(_)
+ | InstructionInputName::Rc(_)
+ | InstructionInputName::Carry(_)
+ | InstructionInputName::Overflow(_) => None,
+ InstructionInputName::ImmediateS16(_) => Some(ImmediateShape::S16),
+ InstructionInputName::ImmediateU16(_) => Some(ImmediateShape::U16),
+ }
+ }
+}
+