diff options
Diffstat (limited to 'src/actor.rs')
-rw-r--r-- | src/actor.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/actor.rs b/src/actor.rs new file mode 100644 index 0000000..3b03fa6 --- /dev/null +++ b/src/actor.rs @@ -0,0 +1,29 @@ +use crate::number::Number; + +#[derive(Clone)] +pub enum Type { + String, + Record { + name: String, + fields: Vec<Slot> + }, + AnyNumber, + NumberInRange { + min: Option<Number>, + max: Option<Number>, + }, + List { + contents: Box<Type>, + }, +} + +#[derive(Clone)] +pub struct Slot { + pub name: String, + pub r#type: Type, +} + +pub trait Actorful { + fn inputs() -> Vec<Slot>; + fn outputs() -> Vec<Slot>; +} |