defmodule GitHub.Commit.Comparison do @moduledoc """ Provides struct and type for CommitComparison """ @type t :: %__MODULE__{ ahead_by: integer, base_commit: GitHub.Commit.t(), behind_by: integer, commits: [GitHub.Commit.t()], diff_url: String.t(), files: [GitHub.DiffEntry.t()] | nil, html_url: String.t(), merge_base_commit: GitHub.Commit.t(), patch_url: String.t(), permalink_url: String.t(), status: String.t(), total_commits: integer, url: String.t() } defstruct [ :ahead_by, :base_commit, :behind_by, :commits, :diff_url, :files, :html_url, :merge_base_commit, :patch_url, :permalink_url, :status, :total_commits, :url ] @doc false @spec __fields__(atom) :: keyword def __fields__(type \\ :t) def __fields__(:t) do [ ahead_by: :integer, base_commit: {GitHub.Commit, :t}, behind_by: :integer, commits: {:array, {GitHub.Commit, :t}}, diff_url: :string, files: {:array, {GitHub.DiffEntry, :t}}, html_url: :string, merge_base_commit: {GitHub.Commit, :t}, patch_url: :string, permalink_url: :string, status: :string, total_commits: :integer, url: :string ] end end