use crate::types::TypeNode;
use crate::types::TypeRelation;
#[derive(Clone, Copy, Debug)]
pub struct AtomicOpsetDecl {
pub domain: &'static str,
pub version: i64,
pub ops: &'static [AtomicOpDecl],
}
#[derive(Debug)]
pub struct AtomicOpDecl {
pub name: &'static str,
pub inputs: &'static [(&'static str, &'static TypeNode)],
pub outputs: &'static [(&'static str, &'static TypeNode)],
pub kind: AtomicOpKind,
pub type_relations: &'static [TypeRelation],
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum AtomicOpKind {
Immediate,
Async,
}