moose
moose copied to clipboard
Decide what compiled operators look like
Compiling an operator currently results in a Box<dyn Vec<C::Value>> -> C::Value
, which unlike the older code base doesn't allow operations to do much compile-time checking (eg arity). Moreover, always creating a Box
has some performance overhead that rustc seems unable to remove.
This issue is about deciding whether we want to use more typed objects to represent compiled operators, eg an enum.