experimentation: use dynamic type ids for signatures and add qol macro

This commit is contained in:
Schrottkatze 2024-02-26 12:36:57 +01:00
parent 911339fc2a
commit 31a044577a
Signed by: schrottkatze
SSH key fingerprint: SHA256:hXb3t1vINBFCiDCmhRABHX5ocdbLiKyCdKI4HK2Rbbc
4 changed files with 21 additions and 33 deletions

View file

@ -1,12 +1,13 @@
//! Operations on numeric data
use core::panic;
use std::any::TypeId;
use crate::experimental::trait_based::{
data::{
io::{Inputs, Outputs},
raw::Data,
},
element::{DataType, ElementSignature, PipelineElement},
element::{ElementSignature, PipelineElement},
};
/// Addition
@ -22,10 +23,7 @@ impl PipelineElement for Add {
}
fn signature(&self) -> ElementSignature {
ElementSignature {
inputs: vec![DataType::Int, DataType::Int],
outputs: vec![DataType::Int],
}
signature!(i32, i32 => i32)
}
}
@ -42,10 +40,7 @@ impl PipelineElement for Subtract {
}
fn signature(&self) -> ElementSignature {
ElementSignature {
inputs: vec![DataType::Int, DataType::Int],
outputs: vec![DataType::Int],
}
signature!(i32, i32 => i32)
}
}
@ -62,9 +57,6 @@ impl PipelineElement for Stringify {
}
fn signature(&self) -> ElementSignature {
ElementSignature {
inputs: vec![DataType::Int],
outputs: vec![DataType::String],
}
signature!(i32 => String)
}
}