pub struct Invocation<'a> {
pub ids: InvocationIds,
pub returned: bool,
pub waiting_at_barrier: bool,
pub uniform_checks: Vec<(usize, bool)>,
/* private fields */
}Expand description
One paused or running invocation.
Fields§
§ids: InvocationIdsBuiltin ids for this invocation.
returned: boolTrue after return.
waiting_at_barrier: boolTrue when paused at a barrier.
uniform_checks: Vec<(usize, bool)>Uniform-if observations for branches that contain a barrier.
Implementations§
Source§impl<'a> Invocation<'a>
impl<'a> Invocation<'a>
Sourcepub fn new(ids: InvocationIds, entry: &'a [Node]) -> Self
pub fn new(ids: InvocationIds, entry: &'a [Node]) -> Self
Create an invocation at the start of the entry point.
Sourcepub fn push_scope(&mut self)
pub fn push_scope(&mut self)
Push a lexical scope.
use vyre_reference::workgroup::{Invocation, InvocationIds};
let mut invocation = Invocation::new(InvocationIds::ZERO, &[]);
invocation.push_scope();Sourcepub fn pop_scope(&mut self)
pub fn pop_scope(&mut self)
Pop a lexical scope and remove bindings declared in it.
use vyre_reference::workgroup::{Invocation, InvocationIds};
let mut invocation = Invocation::new(InvocationIds::ZERO, &[]);
invocation.pop_scope();Sourcepub fn bind(&mut self, name: &str, value: Value) -> Result<(), Error>
pub fn bind(&mut self, name: &str, value: Value) -> Result<(), Error>
Bind a mutable local.
use vyre_reference::{value::Value, workgroup::{Invocation, InvocationIds}};
fn main() -> Result<(), vyre_foundation::Error> {
let mut invocation = Invocation::new(InvocationIds::ZERO, &[]);
invocation.bind("example", Value::U32(1))?;
Ok(())
}Sourcepub fn bind_loop_var(&mut self, name: &str, value: Value) -> Result<(), Error>
pub fn bind_loop_var(&mut self, name: &str, value: Value) -> Result<(), Error>
Bind an immutable loop variable.
use vyre_reference::{value::Value, workgroup::{Invocation, InvocationIds}};
fn main() -> Result<(), vyre_foundation::Error> {
let mut invocation = Invocation::new(InvocationIds::ZERO, &[]);
invocation.bind_loop_var("example", Value::U32(1))?;
Ok(())
}Auto Trait Implementations§
impl<'a> Freeze for Invocation<'a>
impl<'a> !RefUnwindSafe for Invocation<'a>
impl<'a> !Send for Invocation<'a>
impl<'a> !Sync for Invocation<'a>
impl<'a> Unpin for Invocation<'a>
impl<'a> UnsafeUnpin for Invocation<'a>
impl<'a> !UnwindSafe for Invocation<'a>
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