Mojo trait
TrivialRegisterPassable
A marker trait to denote the type to be register passable trivial.
The compiler treats the type that conforms to this trait with the following constraints:
- The type implicitly conforms to Copyable and the compiler synthesizes copy ctor that does a memcpy.
- A trivial
__del__member is synthesized by the compiler too, so the type can’t be a linear type. - All declared members are required to also conforms to this trait, since you can’t memcpy or trivially destroy a container if one of its stored members has a non-trivial copy constructor.
- You are not allowed to define a custom copy ctor or
__del__.
struct Foo(TrivialRegisterPassable):
...Implemented traits
AnyType,
Copyable,
ImplicitlyCopyable,
ImplicitlyDestructible,
Movable,
RegisterPassable
Required methods
__init__
__init__(out self: _Self, *, copy: _Self)
Create a new instance of the value by copying an existing one.
Args:
- copy (
_Self): The value to copy.
Returns:
_Self
__init__(out self: _Self, *, deinit take: _Self)
Create a new instance of the value by moving the value of another.
Args:
- take (
_Self): The value to move.
Returns:
_Self
Provided methods
copy
copy(self: _Self) -> _Self
Explicitly construct a copy of self, a convenience method for Self(copy=self) when the type is inconvenient to write out.
Returns:
_Self: A copy of this value.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!