#include "device.h"
#include "../tensor.h"
#include "../utils.h"
#include <torch/torch.h>

namespace TensorOps {

Napi::Value Device(Tensor* self, const Napi::CallbackInfo& info) {
  Napi::Env env = info.Env();

  std::string device_str;
  if (self->tensor.is_cuda()) {
    device_str = "cuda:" + std::to_string(self->tensor.get_device());
  } else if (self->tensor.is_mps()) {
    device_str = "mps";
  } else {
    device_str = "cpu";
  }

  return Napi::String::New(env, device_str);
}

}  // namespace TensorOps
