#pragma once
#include <cstddef>
#include <cstdint>
#include <memory_resource>
struct Server_Allocator_Snapshot {
    std::uint64_t live_bytes{};
    std::uint64_t peak_live_bytes{};
    std::uint64_t allocated_bytes_total{};
    std::uint64_t allocation_count{};
    std::uint64_t deallocation_count{};
    std::uint64_t pmr_live_bytes{};
    std::uint64_t pmr_peak_live_bytes{};
    std::uint64_t pmr_allocated_bytes_total{};
    std::uint64_t pmr_allocation_count{};
    std::uint64_t pmr_deallocation_count{};
    int allocator_version{};
};
void initialize_server_memory_resource();
std::pmr::memory_resource* server_memory_resource();
Server_Allocator_Snapshot server_allocator_snapshot();
void collect_server_memory(bool force);
