# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:06831f8166c6d860691af36ee02b72ae3246568eb2e5c67ed5d11da71d02afeb
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
defmodule Crawlberg.BatchScrapeResults do
@moduledoc """
Aggregate result of a batch scrape, exposing per-URL results plus precomputed counts.
The counts are derived once at construction so every binding language can read them
as plain integer fields without re-iterating the `results` vector.
"""
@typedoc "Aggregate result of a batch scrape, exposing per-URL results plus precomputed counts."
@type t :: %__MODULE__{
results: [map()],
total_count: non_neg_integer(),
completed_count: non_neg_integer(),
failed_count: non_neg_integer()
}
defstruct results: [],
total_count: 0,
completed_count: 0,
failed_count: 0
defimpl Jason.Encoder do
@doc false
def encode(value, opts) do
value
|> Map.from_struct()
|> Enum.reject(fn {_k, v} -> v == nil end)
|> Enum.into(%{})
|> Jason.Encoder.encode(opts)
end
end
end