# This file is auto-generated by alef — DO NOT EDIT. # alef:hash:ae27fb2270a21feb95d12e56306ee8cb658cb16e6b0de1fb02eef725f0889bb7 # To regenerate: alef generate # To verify freshness: alef verify --exit-code defmodule HtmlToMarkdown.HeaderMetadata do @moduledoc """ Header element metadata with hierarchy tracking. Captures heading elements (h1-h6) with their text content, identifiers, and position in the document structure. # Examples ``` let header = HeaderMetadata { level: 1, text: "Main Title".to_string(), id: Some("main-title".to_string()), depth: 0, html_offset: 145, }; assert_eq!(header.level, 1); assert!(header.is_valid()); ``` """ @typedoc "Header element metadata with hierarchy tracking." @type t :: %__MODULE__{ level: non_neg_integer(), text: String.t() | nil, id: String.t() | nil, depth: non_neg_integer(), html_offset: non_neg_integer() } defstruct level: 0, text: nil, id: nil, depth: 0, html_offset: 0 @doc "Validate that the header level is within valid range (1-6)." @spec valid?(t()) :: boolean() def valid?(%__MODULE__{level: level}) do level >= 1 and level <= 6 end end