defmodule GitHub.Key do @moduledoc """ Provides struct and types for a Key """ use GitHub.Encoder @type simple :: %__MODULE__{__info__: map, id: integer, key: String.t()} @type t :: %__MODULE__{ __info__: map, created_at: DateTime.t(), id: integer, key: String.t(), read_only: boolean, title: String.t(), url: String.t(), verified: boolean } defstruct [:__info__, :created_at, :id, :key, :read_only, :title, :url, :verified] @doc false @spec __fields__(atom) :: keyword def __fields__(type \\ :t) def __fields__(:simple) do [id: :integer, key: {:string, :generic}] end def __fields__(:t) do [ created_at: {:string, :date_time}, id: :integer, key: {:string, :generic}, read_only: :boolean, title: {:string, :generic}, url: {:string, :generic}, verified: :boolean ] end end