use crate::{
Error,
ir::{Block, Operation, Value, block::BlockLike},
};
pub trait BuiltinBlockExt<'c> {
fn arg(&self, index: usize) -> Result<Value<'c, '_>, Error>;
fn append_op_result(&self, operation: Operation<'c>) -> Result<Value<'c, '_>, Error>;
}
impl<'c> BuiltinBlockExt<'c> for Block<'c> {
#[inline]
fn arg(&self, index: usize) -> Result<Value<'c, '_>, Error> {
Ok(self.argument(index)?.into())
}
#[inline]
fn append_op_result(&self, operation: Operation<'c>) -> Result<Value<'c, '_>, Error> {
Ok(self.append_operation(operation).result(0)?.into())
}
}