defmodule Pi.Web.Result do
@moduledoc "Normalized result for a bounded web fetch."
defstruct url: "",
final_url: nil,
status: nil,
content_type: nil,
format: :text,
title: nil,
text: "",
size_bytes: 0,
total_chars: 0,
truncated?: false,
redirected?: false,
metadata: %{}
@type format :: :text | :html | :json | :markdown
@type t :: %__MODULE__{
url: String.t(),
final_url: String.t() | nil,
status: pos_integer() | nil,
content_type: String.t() | nil,
format: format(),
title: String.t() | nil,
text: String.t(),
size_bytes: non_neg_integer(),
total_chars: non_neg_integer(),
truncated?: boolean(),
redirected?: boolean(),
metadata: map()
}
end