lib/preview_image.ex
defmodule Breddit.PreviewImage do
@keys ~W(id resolutions source variants enabled)a
@enforce_keys @keys
@type t() :: %{
id: String.t(),
resolutions: list(__MODULE__.Resolution.t()),
source: __MODULE__.Resolution.t(),
height: integer(),
width: integer(),
variants: map(),
enabled: boolean()
}
defstruct @keys
defmodule __MODULE__.Resolution do
@keys ~W(height width url)a
@enforce_keys @keys
@type t() :: %{height: integer(), width: integer(), url: String.t()}
defstruct @keys
end
end