Mojo struct
DimList
@register_passable(trivial)
struct DimList
This type represents a list of dimensions. Each dimension may have a static value or not have a value, which represents a dynamic dimension.
Fields
- value (
VariadicList[Dim]
): The underlying storage for the list of dimensions.
Implemented traits
AnyType
,
Sized
,
Stringable
,
UnknownDestructibility
,
Writable
Methods
__init__
@implicit
__init__[Intable: Intable](out self, values: Tuple[Intable])
Creates a dimension list from the given list of values.
Parameters:
- Intable (
Intable
): A type able to be converted to anInt
.
Args:
- values (
Tuple[Intable]
): The initial dim values list.
@implicit
__init__[Intable: Intable](out self, values: Tuple[Intable, Intable])
Creates a dimension list from the given list of values.
Parameters:
- Intable (
Intable
): A type able to be converted to anInt
.
Args:
- values (
Tuple[Intable, Intable]
): The initial dim values list.
@implicit
__init__[Intable: Intable](out self, values: Tuple[Intable, Intable, Intable])
Creates a dimension list from the given list of values.
Parameters:
- Intable (
Intable
): A type able to be converted to anInt
.
Args:
- values (
Tuple[Intable, Intable, Intable]
): The initial dim values list.
@implicit
__init__(out self, values: VariadicList[Dim])
Creates a dimension list from the given list of values.
Args:
- values (
VariadicList[Dim]
): The initial dim values list.
@implicit
__init__(out self, *values: Dim)
Creates a dimension list from the given Dim values.
Args:
- *values (
Dim
): The initial dim values.
__eq__
__eq__(self, rhs: Self) -> Bool
Compares two DimLists for equality.
DimLists are considered equal if all non-dynamic Dims have similar values and all dynamic Dims in self are also dynamic in rhs.
Args:
- rhs (
Self
): The other DimList.
Returns:
True if the DimLists are the same.
__len__
__len__(self) -> Int
Gets the size of the DimList.
Returns:
The number of elements in the DimList.
get
get[i: Int](self) -> Int
Gets the static dimension value at a specified index.
Parameters:
- i (
Int
): The dimension index.
Returns:
The static dimension value at the specified index.
at
at[i: Int](self) -> Dim
Gets the dimension at a specified index.
Parameters:
- i (
Int
): The dimension index.
Returns:
The dimension at the specified index.
has_value
has_value[i: Int](self) -> Bool
Returns True if the dimension at the given index has a static value.
Parameters:
- i (
Int
): The dimension index.
Returns:
Whether the specified dimension has a static value.
product
product[length: Int](self) -> Dim
Computes the product of the first length
dimensions in the list.
If any are dynamic, the result is a dynamic dimension value.
Parameters:
- length (
Int
): The number of elements in the list.
Returns:
The product of the first length
dimensions.
product[start: Int, end: Int](self) -> Dim
Computes the product of a range of the dimensions in the list.
If any in the range are dynamic, the result is a dynamic dimension value.
Parameters:
- start (
Int
): The starting index. - end (
Int
): The end index.
Returns:
The product of all the dimensions.
product(self) -> Dim
Computes the product of all the dimensions in the list.
If any are dynamic, the result is a dynamic dimension value.
Returns:
The product of all the dimensions.
contains
contains[length: Int](self, value: Dim) -> Bool
Determines whether the dimension list contains a specified dimension value.
Parameters:
- length (
Int
): The number of elements in the list.
Args:
- value (
Dim
): The value to find.
Returns:
True if the list contains a dimension of the specified value.
all_known
all_known[length: Int](self) -> Bool
Determines whether all dimensions are statically known.
Parameters:
- length (
Int
): The number of elements in the list.
Returns:
True if all dimensions have a static value.
all_known[start: Int, end: Int](self) -> Bool
Determines whether all dimensions within [start, end) are statically known.
Parameters:
- start (
Int
): The first queried dimension. - end (
Int
): The last queried dimension.
Returns:
True if all queried dimensions have a static value.
create_unknown
static create_unknown[length: Int]() -> Self
Creates a dimension list of all dynamic dimension values.
Parameters:
- length (
Int
): The number of elements in the list.
Returns:
A list of all dynamic dimension values.
__str__
__str__(self) -> String
Converts the DimList to a String. The String is a comma separated list of the string representation of Dim.
Returns:
The string representation of the type.
write_to
write_to[W: Writer](self, mut writer: W)
Formats this DimList to the provided Writer.
Parameters:
- W (
Writer
): A type conforming to the Writable trait.
Args:
- writer (
W
): The object to write to.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!