lib/kinda.ex

defmodule Kinda do
  alias Kinda.CodeGen.KindDecl
  require Logger

  @moduledoc """
  Documentation for `Kinda`.
  """

  def unwrap_ref(%{ref: ref}) do
    ref
  end

  def unwrap_ref(arguments) when is_list(arguments) do
    Enum.map(arguments, &unwrap_ref/1)
  end

  def unwrap_ref(term) do
    term
  end

  def module_name(zig_t, forward_module, zig_t_module_map) do
    if Kinda.ZigAST.is_array?(zig_t) do
      forward_module |> Module.concat("Array")
    else
      if Kinda.ZigAST.is_ptr?(zig_t) do
        forward_module |> Module.concat("Ptr")
      else
        zig_t_module_map |> Map.fetch!(zig_t)
      end
    end
  end

  def zig_sources() do
    __DIR__ |> Path.join("..") |> Path.join("zig-src") |> Path.join("*.zig") |> Path.wildcard()
  end
end