pub struct FuncOperation<'c> { /* private fields */ }
Expand description
A func
operation. Async function operation.
An async function is like a normal function, but supports non-blocking await. Internally, async function is lowered to the LLVM coroutinue with async runtime intrinsic. It can return an async token and/or async values. The token represents the execution state of async function and can be used when users want to express dependencies on some side effects, e.g., the token becomes available once every thing in the func body is executed.
Example:
// Async function can't return void, it always must be some async thing.
async.func @async.0() -> !async.token {
return
}
// Function returns only async value.
async.func @async.1() -> !async.value<i32> {
%0 = arith.constant 42 : i32
return %0 : i32
}
// Implicit token can be added to return types.
async.func @async.2() -> !async.token, !async.value<i32> {
%0 = arith.constant 42 : i32
return %0 : i32
}
Implementations§
source§impl<'c> FuncOperation<'c>
impl<'c> FuncOperation<'c>
sourcepub fn as_operation(&self) -> &Operation<'c>
pub fn as_operation(&self) -> &Operation<'c>
Returns a generic operation.
sourcepub fn builder(
context: &'c Context,
location: Location<'c>
) -> FuncOperationBuilder<'c, Unset, Unset, Unset>
pub fn builder( context: &'c Context, location: Location<'c> ) -> FuncOperationBuilder<'c, Unset, Unset, Unset>
Creates a builder.
pub fn body(&self) -> Result<RegionRef<'c, '_>, Error>
pub fn sym_name(&self) -> Result<StringAttribute<'c>, Error>
pub fn set_sym_name(&mut self, value: StringAttribute<'c>)
pub fn function_type(&self) -> Result<TypeAttribute<'c>, Error>
pub fn set_function_type(&mut self, value: TypeAttribute<'c>)
pub fn sym_visibility(&self) -> Result<StringAttribute<'c>, Error>
pub fn set_sym_visibility(&mut self, value: StringAttribute<'c>)
pub fn remove_sym_visibility(&mut self) -> Result<(), Error>
pub fn arg_attrs(&self) -> Result<ArrayAttribute<'c>, Error>
pub fn set_arg_attrs(&mut self, value: ArrayAttribute<'c>)
pub fn remove_arg_attrs(&mut self) -> Result<(), Error>
pub fn res_attrs(&self) -> Result<ArrayAttribute<'c>, Error>
pub fn set_res_attrs(&mut self, value: ArrayAttribute<'c>)
pub fn remove_res_attrs(&mut self) -> Result<(), Error>
Trait Implementations§
source§impl<'c> From<FuncOperation<'c>> for Operation<'c>
impl<'c> From<FuncOperation<'c>> for Operation<'c>
source§fn from(operation: FuncOperation<'c>) -> Self
fn from(operation: FuncOperation<'c>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<'c> RefUnwindSafe for FuncOperation<'c>
impl<'c> !Send for FuncOperation<'c>
impl<'c> !Sync for FuncOperation<'c>
impl<'c> Unpin for FuncOperation<'c>
impl<'c> UnwindSafe for FuncOperation<'c>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more