macro_rules! define_arith_dual_reference {
($marker:ident, $direct:path, $independent:path) => {
pub mod reference_a {
#[must_use]
pub fn reference(input: &[u8]) -> Vec<u8> {
super::super::common::binary_direct(input, $direct)
}
}
pub mod reference_b {
#[must_use]
pub fn reference(input: &[u8]) -> Vec<u8> {
$independent(input)
}
}
impl crate::dual::DualReference for $marker {
fn reference_a(input: &[u8]) -> Vec<u8> {
reference_a::reference(input)
}
fn reference_b(input: &[u8]) -> Vec<u8> {
reference_b::reference(input)
}
}
};
}
pub mod add;
mod common;
pub mod mul;