Files
fil/packages/elixir/lib/kreuzberg/metadata.ex

74 lines
2.3 KiB
Elixir
Raw Normal View History

2026-06-01 23:40:55 +02:00
# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
# Issues & docs: https://github.com/kreuzberg-dev/alef
defmodule Kreuzberg.Metadata do
@moduledoc """
Extraction result metadata.
Contains common fields applicable to all formats, format-specific metadata
via a discriminated union, and additional custom fields from postprocessors.
"""
@typedoc "Extraction result metadata."
@type t :: %__MODULE__{
title: String.t() | nil,
subject: String.t() | nil,
authors: [String.t()] | nil,
keywords: [String.t()] | nil,
language: String.t() | nil,
created_at: String.t() | nil,
modified_at: String.t() | nil,
created_by: String.t() | nil,
modified_by: String.t() | nil,
pages: map() | nil,
format: String.t() | nil | nil,
image_preprocessing: map() | nil,
json_schema: String.t() | nil,
error: map() | nil,
extraction_duration_ms: non_neg_integer() | nil,
category: String.t() | nil,
tags: [String.t()] | nil,
document_version: String.t() | nil,
abstract_text: String.t() | nil,
output_format: String.t() | nil,
ocr_used: boolean(),
additional: map()
}
defstruct title: nil,
subject: nil,
authors: nil,
keywords: nil,
language: nil,
created_at: nil,
modified_at: nil,
created_by: nil,
modified_by: nil,
pages: nil,
format: nil,
image_preprocessing: nil,
json_schema: nil,
error: nil,
extraction_duration_ms: nil,
category: nil,
tags: nil,
document_version: nil,
abstract_text: nil,
output_format: nil,
ocr_used: false,
additional: %{}
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