#![cfg(feature = "python")]
use crate::{
- CarryFlags, ConditionRegister, Instr, InstructionInput, InstructionResult, OverflowFlags,
+ CarryFlags, ConditionRegister, Instr, InstructionInput, InstructionOutput, OverflowFlags,
};
use pyo3::{prelude::*, wrap_pyfunction, PyObjectProtocol};
use std::{borrow::Cow, cell::RefCell, fmt};
#[pymodule(m)]
#[pyclass(name = InstructionInput)]
#[wrapped(value: InstructionInput)]
- #[args(ra, rb="None", rc="None", carry="None")]
+ #[args(ra="None", rb="None", rc="None", carry="None")]
#[text_signature = "(ra, rb, rc, carry)"]
struct PyInstructionInput {
#[set = set_ra]
- ra: u64,
+ ra: Option<u64>,
#[set = set_rb]
rb: Option<u64>,
#[set = set_rc]
wrap_type! {
#[pymodule(m)]
- #[pyclass(name = InstructionResult)]
- #[wrapped(value: InstructionResult)]
+ #[pyclass(name = InstructionOutput)]
+ #[wrapped(value: InstructionOutput)]
#[args(
rt="None",
overflow="None",
+ carry="None",
cr0="None",
cr1="None",
cr2="None",
#[text_signature = "(\
rt=None, \
overflow=None, \
+ carry=None, \
cr0=None, \
cr1=None, \
cr2=None, \
cr6=None, \
cr7=None)"
]
- struct PyInstructionResult {
+ struct PyInstructionOutput {
#[set = set_rt]
rt: Option<u64>,
#[set = set_overflow]
overflow: Option<OverflowFlags>,
+ #[set = set_carry]
+ carry: Option<CarryFlags>,
#[set = set_cr0]
cr0: Option<ConditionRegister>,
#[set = set_cr1]