# This file is auto-generated by alef — DO NOT EDIT. # alef:hash:df03cfa1ea58fc063ec7e305db2e9dcdc739bb4b063899fc4750f8584c5bd37e # To regenerate: alef generate # To verify freshness: alef verify --exit-code defmodule HtmlToMarkdown.HtmlMetadata do @moduledoc """ Comprehensive metadata extraction result from HTML document. Contains all extracted metadata types in a single structure, suitable for serialization and transmission across language boundaries. # Examples ``` let metadata = HtmlMetadata { document: Default::default(), headers: Vec::new(), links: Vec::new(), images: Vec::new(), structured_data: Vec::new(), }; assert!(metadata.headers.is_empty()); ``` """ @typedoc "Comprehensive metadata extraction result from HTML document." @type t :: %__MODULE__{ document: HtmlToMarkdown.DocumentMetadata.t(), headers: [HtmlToMarkdown.HeaderMetadata.t()], links: [HtmlToMarkdown.LinkMetadata.t()], images: [HtmlToMarkdown.ImageMetadata.t()], structured_data: [HtmlToMarkdown.StructuredData.t()] } defstruct document: nil, headers: [], links: [], images: [], structured_data: [] 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