use pliron::derive::{pliron_attr, pliron_type};
use crate::{aligned, sized};
#[pliron_attr(name = "cube.async_group", format, verifier = "succ")]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub enum AsyncGroup {
Warpgroup,
BulkCopy,
}
#[pliron_attr(name = "cube.wait_until", format, verifier = "succ")]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum WaitUntil {
Released,
Complete,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[pliron_type(
name = "cube.group_token",
format = "`group_token<` $0 `>`",
generate_get = true,
verifier = "succ"
)]
pub struct GroupTokenType(pub AsyncGroup);
aligned!(GroupTokenType, 4);
sized!(GroupTokenType, 4);