Mojo trait
Copyable
The Copyable trait denotes a type whose value can be copied.
Example implementing the Copyable
trait on Foo
which requires the __copyinit__
method:
struct Foo(Copyable):
var s: String
fn __init__(inout self, s: String):
self.s = s
fn __copyinit__(inout self, other: Self):
print("copying value")
self.s = other.s
You can now copy objects inside a generic function:
fn copy_return[T: Copyable](foo: T) -> T:
var copy = foo
return copy
var foo = Foo("test")
var res = copy_return(foo)
copying value
Implemented traitsβ
AnyType
Methodsβ
__copyinit__
β
__copyinit__(inout self: T, existing: T, /)
Create a new instance of the value by copying an existing one.
Args:
- βexisting (
T
): The value to copy.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!
If you'd like to share more information, please report an issue on GitHub
π What went wrong?