lib/graft/validate/plan/command.ex

defmodule Graft.Validate.Plan.Command do
  @moduledoc """
  One mix invocation in a validate plan. v0.1 ships three command
  kinds: `:deps_get`, `:compile`, `:test`. Argv is the literal argument
  list passed to `mix`; description is the human-readable form.
  """

  @type kind :: :deps_get | :compile | :test

  @type t :: %__MODULE__{
          kind: kind(),
          argv: [String.t()],
          description: String.t()
        }

  defstruct [:kind, :argv, :description]
end