INNER CODE UNIT · Rust
get_nodes
lunatic-solutions/lunatic · crates/lunatic-distributed-api/src/lib.rs:79
fn get_nodes<T, E>(mut caller: Caller<T>, nodes_ptr: u32, nodes_len: u32) -> Result<u32>
where
T: DistributedCtx<E>,
E: Environment,
{
let memory = get_memory(&mut caller)?;
let node_ids = caller
.data()
.distributed()
.map(|d| d.control.node_ids())
.unwrap_or_else(|_| vec![]);
let copy_nodes_len = node_ids.len().min(nodes_len as usize);
memory
.data_mut(&mut caller)
.get_mut(
nodes_ptr as usize..(nodes_ptr as usize + std::mem::size_of::<u64>() * copy_nodes_len),
)
.or_trap("lunatic::distributed::get_nodes::memory")?