includes/std: Added std::IIndexed as a nicer wrapper around std::core::array_index()

This commit is contained in:
WerWolv
2024-06-25 22:52:57 +02:00
parent 26878548f0
commit b540ead0ae

View File

@@ -1,6 +1,7 @@
#pragma once
import std.sys;
import std.core;
/*!
The array library contains a helper type to make it easier to create multi-dimensional arrays
@@ -30,6 +31,16 @@ namespace auto std {
std::assert($ - startAddress == NumBytes, "Not enough bytes available to fit a whole number of types");
} [[format("std::impl::format_array")]];
/**
An interface type for getting the index of the currently processed element in an array. This is a nice wrapper around `std::core::array_index()`
To use it, inherit from it and use the `this.index` field to get the index of the current element
*/
struct IIndexed {
const u64 index = std::core::array_index();
};
namespace impl {
fn format_array(ref auto array) {