Skip to content

Commit b06b89c

Browse files
committed
clarity: implement "pass_argument_to_wasm" for tuple
1 parent 6f733a4 commit b06b89c

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

clarity/src/vm/clarity_wasm.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1601,7 +1601,26 @@ fn pass_argument_to_wasm(
16011601
let adjusted_in_mem_offset = in_mem_offset + bytes.len() as i32;
16021602
Ok((buffer, offset, adjusted_in_mem_offset))
16031603
}
1604-
Value::Tuple(_t) => todo!("Value type not yet implemented: {:?}", value),
1604+
Value::Tuple(TupleData {
1605+
type_signature,
1606+
data_map,
1607+
}) => {
1608+
let mut buffer = vec![];
1609+
let mut offset = offset;
1610+
let mut in_mem_offset = in_mem_offset;
1611+
for name in type_signature.get_type_map().keys() {
1612+
let b;
1613+
(b, offset, in_mem_offset) = pass_argument_to_wasm(
1614+
memory,
1615+
store.as_context_mut(),
1616+
&data_map[name],
1617+
offset,
1618+
in_mem_offset,
1619+
)?;
1620+
buffer.extend(b);
1621+
}
1622+
Ok((buffer, offset, in_mem_offset))
1623+
}
16051624
}
16061625
}
16071626

0 commit comments

Comments
 (0)