Mojo struct
Dim
A static or dynamic dimension modeled with an optional integer.
This class is meant to represent an optional static dimension. When a value is present, the dimension has that static value. When a value is not present, the dimension is dynamic.
Implemented traits
AnyType
,
Boolable
,
Copyable
,
Formattable
,
ImplicitlyBoolable
,
Intable
,
Movable
,
Stringable
Methods
__init__
__init__[type: Intable](inout self: Self, value: type)
Creates a statically-known dimension.
Parameters:
- type (
Intable
): The Intable type.
Args:
- value (
type
): The static dimension value.
__init__(inout self: Self, value: index)
Creates a statically-known dimension.
Args:
- value (
index
): The static dimension value.
__init__(inout self: Self)
Creates a dynamic dimension with no static value.
__bool__
__bool__(self: Self) -> Bool
Returns True if the dimension has a static value.
Returns:
Whether the dimension has a static value.
__eq__
__eq__(self: Self, rhs: Self) -> Bool
Compares two dimensions for equality.
Args:
- rhs (
Self
): The other dimension.
Returns:
True if the dimensions are the same.
__ne__
__ne__(self: Self, rhs: Self) -> Bool
Compare two dimensions for inequality.
Args:
- rhs (
Self
): The dimension to compare.
Returns:
True if they are not equal.
__mul__
__mul__(self: Self, rhs: Self) -> Self
Multiplies two dimensions.
If either are unknown, the result is unknown as well.
Args:
- rhs (
Self
): The other dimension.
Returns:
The product of the two dimensions.
__floordiv__
__floordiv__(self: Self, rhs: Self) -> Self
Divide by the given dimension and round towards negative infinity.
If either are unknown, the result is unknown as well.
Args:
- rhs (
Self
): The divisor dimension.
Returns:
The floor division of the two dimensions.
__rfloordiv__
__rfloordiv__(self: Self, rhs: Self) -> Self
Divide the given argument by self and round towards negative infinity.
If either are unknown, the result is unknown as well.
Args:
- rhs (
Self
): The dimension to divide by this Dim.
Returns:
The floor of the argument divided by self.
__imul__
__imul__(inout self: Self, rhs: Self)
Inplace multiplies two dimensions.
If either are unknown, the result is unknown as well.
Args:
- rhs (
Self
): The other dimension.
__as_bool__
__as_bool__(self: Self) -> Bool
Returns True if the dimension has a static value.
Returns:
Whether the dimension has a static value.
has_value
has_value(self: Self) -> Bool
Returns True if the dimension has a static value.
Returns:
Whether the dimension has a static value.
is_dynamic
is_dynamic(self: Self) -> Bool
Returns True if the dimension has a dynamic value.
Returns:
Whether the dimension is dynamic.
get
get(self: Self) -> Int
Gets the static dimension value.
Returns:
The static dimension value.
is_multiple
is_multiple[alignment: Int](self: Self) -> Bool
Checks if the dimension is aligned.
Parameters:
- alignment (
Int
): The alignment requirement.
Returns:
Whether the dimension is aligned.
__int__
__int__(self: Self) -> Int
Gets the static dimension value.
Returns:
The static dimension value.
__str__
__str__(self: Self) -> String
Converts the Dim to a String. If the value is unknown, then the string "?" is returned.
Returns:
The string representation of the type.
format_to
format_to(self: Self, inout writer: Formatter)
Formats this DimList to the provided formatter.
Args:
- writer (
Formatter
): The formatter to write to.
or_else
or_else(self: Self, default: Int) -> Int
Return the underlying value contained in the Optional or a default value if the Optional's underlying value is not present.
Args:
- default (
Int
): The new value to use if no value was present.
Returns:
The underlying value contained in the Optional or a default value.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!
😔 What went wrong?