Skip to main content

Mojo trait

StringableRaising

The StringableRaising trait describes a type that can be converted to a String.

Any type that conforms to Stringable or StringableRaising works with the built-in print() and String() functions.

The StringableRaising trait requires the type to define the __str__() method, which can raise an error. For example:

struct Foo(StringableRaising):     var s: String      fn __str__(self) raises -> String:         if self.s == "":             raise Error("Empty String")         return self.s

Now you can pass an instance of Foo to the String() function to get back a String:

def main():     var foo = Foo("test")     print(String(foo) == "test")
True

Implemented traits

AnyType, UnknownDestructibility

Aliases

__del__is_trivial

comptime __del__is_trivial

A flag (often compiler generated) to indicate whether the implementation of __del__ is trivial.

The implementation of __del__ is considered to be trivial if:

  • The struct has a compiler-generated trivial destructor and all its fields have a trivial __del__ method.

In practice, it means that the __del__ can be considered as no-op.

Required methods

__str__

__str__(self: _Self) -> String

Get the string representation of the type.

Returns:

String: The string representation of the type.

Raises:

If there is an error when computing the string representation of the type.

Was this page helpful?