defmodule GitHub.Blob do @moduledoc """ Provides struct and type for a Blob """ use GitHub.Encoder @type t :: %__MODULE__{ __info__: map, content: String.t(), encoding: String.t(), highlighted_content: String.t() | nil, node_id: String.t(), sha: String.t(), size: integer | nil, url: String.t() } defstruct [:__info__, :content, :encoding, :highlighted_content, :node_id, :sha, :size, :url] @doc false @spec __fields__(atom) :: keyword def __fields__(type \\ :t) def __fields__(:t) do [ content: {:string, :generic}, encoding: {:string, :generic}, highlighted_content: {:string, :generic}, node_id: {:string, :generic}, sha: {:string, :generic}, size: {:union, [:integer, :null]}, url: {:string, :uri} ] end end