An explicit Copy trait for MoonBit values
fn[T : Copy] duplicate(value : T) -> (T, T) {
(Copy::copy(value), Copy::copy(value))
}
test {
debug_inspect(duplicate(42), content="(42, 42)")
}struct Counter {
mut value : Int
}
impl Copy for Counter with fn copy(self) {
Counter::{ value: self.value }
}
test {
let source = Counter::{ value: 1 }
let copied = Copy::copy(source)
copied.value = 2
debug_inspect((source.value, copied.value), content="(1, 2)")
}pub(open) trait Copy {
fn copy(Self) -> Self
}impl Copy for FixedArray[T]impl Copy for ReadOnlyArray[T]An explicit Copy trait for MoonBit values