#pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Amy { void RegisterCxxExceptionHandler(); void* Malloc(size_t size); void Free(void* ptr); namespace Memory { struct MemMetrics { std::atomic Allocated = 0; ///< Total Allocated Memory std::atomic Current = 0; ///< Current Allocated Memory std::atomic Deleted = 0; ///< Total Deleted Memory std::atomic Allocations = 0; ///< Current Allocations count /// @brief Gets the Currently Allocated Memory ull CurrentlyAllocated() { return Current; } }; ull GetTotalAllocated(); ull GetTotalFreed(); ull GetCurrent(); ull GetAllocationCount(); } // namespace Memory } // namespace Amy using Iron = Amy::Iron; using C3D = Amy::C3D; using GTrace = Amy::GTrace;