defmodule GitHub.User.Plan do @moduledoc """ Provides struct and types for a User.Plan """ use GitHub.Encoder @type private :: %__MODULE__{ __info__: map, collaborators: integer, name: String.t(), private_repos: integer, space: integer } @type public :: %__MODULE__{ __info__: map, collaborators: integer, name: String.t(), private_repos: integer, space: integer } defstruct [:__info__, :collaborators, :name, :private_repos, :space] @doc false @spec __fields__(atom) :: keyword def __fields__(:private) do [collaborators: :integer, name: {:string, :generic}, private_repos: :integer, space: :integer] end def __fields__(:public) do [collaborators: :integer, name: {:string, :generic}, private_repos: :integer, space: :integer] end end