/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2026.
 * This program is free software, you can redistribute it and/or modify it under the terms and conditions of
 * CANN Open Software License Agreement Version 2.0 (the "License").
 * Please refer to the License for details. You may not use this file except in compliance with the License.
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
 * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
 * See LICENSE in the root of the software repository for the full text of the License.
 */
#pragma once

#include <iostream>

#include <acl/acl.h>

inline void CheckRet(uint32_t ret, std::string funcName) {
  if (ret != 0) {
    std::cout << funcName <<" execute failed! ret:" << ret << "\n";
  }
}

template <typename Value>
inline void PrintTable(std::vector<Value> &table, uint32_t bucketSize)
{
  for (size_t i = 0; i < table.size() / bucketSize; i++) {
    std::cout << "bucket[" << i << "] : [";
    for(size_t j = 0; j < bucketSize; j++) {
      Value value = table.at(i * bucketSize + j);
      std::cout << "{" << value.first << ", " << value.second << "} ";
    }
    std::cout << "]\n";
  }
}