feat(array): add TSFixedArray copy ctor

This commit is contained in:
fallenoak 2025-10-19 00:20:44 -05:00
parent 8c2439277c
commit 32a1b30ae8
2 changed files with 22 additions and 0 deletions

View file

@ -9,6 +9,7 @@ template <class T>
class TSFixedArray : public TSBaseArray<T> {
public:
TSFixedArray();
TSFixedArray(const TSFixedArray<T>& source);
~TSFixedArray();
TSFixedArray<T>& operator=(const TSFixedArray<T>& source);
void Clear();
@ -23,6 +24,12 @@ TSFixedArray<T>::TSFixedArray() {
this->Constructor();
}
template <class T>
TSFixedArray<T>::TSFixedArray(const TSFixedArray<T>& source) {
this->Constructor();
this->Set(source.Count(), source.Ptr());
}
template <class T>
TSFixedArray<T>::~TSFixedArray() {
for (uint32_t i = 0; i < this->Count(); i++) {

View file

@ -33,6 +33,21 @@ TEST_CASE("TSFixedArray", "[array]") {
REQUIRE(array.Count() == 0);
REQUIRE(array.Ptr() == nullptr);
}
SECTION("constructs copy correctly") {
TSFixedArray<uint32_t> array;
array.SetCount(3);
array[0] = 1;
array[1] = 2;
array[2] = 3;
TSFixedArray<uint32_t> arrayCopy(array);
CHECK(arrayCopy.Count() == 3);
CHECK(arrayCopy[0] == 1);
CHECK(arrayCopy[1] == 2);
CHECK(arrayCopy[2] == 3);
}
}
TEST_CASE("TSFixedArray::Clear", "[array]") {