Packages
kreuzberg
4.9.4
4.10.2
4.10.1
4.10.0
4.9.9
4.9.7
4.9.5
4.9.4
4.9.3
4.9.2
4.9.1
4.8.6
4.8.5
4.8.4
4.8.3
4.8.2
4.8.1
4.8.0
4.7.4
4.7.3
4.7.2
4.7.1
4.7.0
4.6.3
4.6.2
4.6.1
4.6.0
4.5.4
4.5.3
4.5.2
4.5.1
4.4.6
4.4.5
4.4.4
4.4.3
4.4.2
4.4.1
4.4.0
4.3.8
4.3.7
4.3.6
4.3.5
4.3.4
4.3.3
4.3.2
4.3.0
4.2.15
4.2.14
4.2.13
4.2.12
4.2.11
4.2.10
4.2.9
4.2.8
4.2.7
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2.0
4.1.2
4.1.1
4.1.0
4.0.8
4.0.7
4.0.6
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
4.0.0-rc.27
4.0.0-rc.26
High-performance document intelligence library with OCR support
Current section
Files
Jump to
Current section
Files
lib/kreuzberg/code_import_info.ex
defmodule Kreuzberg.CodeImportInfo do
@moduledoc """
Import statement information.
## Fields
* `:source` - Import source/module path
* `:items` - Imported item names
* `:alias` - Import alias
* `:is_wildcard` - Whether this is a wildcard import
* `:span` - Source span
"""
@type t :: %__MODULE__{
source: String.t(),
items: [String.t()],
alias: String.t() | nil,
is_wildcard: boolean(),
span: Kreuzberg.CodeSpan.t()
}
defstruct source: "",
items: [],
alias: nil,
is_wildcard: false,
span: %Kreuzberg.CodeSpan{}
@spec from_map(map()) :: t()
def from_map(data) when is_map(data) do
span =
case Map.get(data, "span", Map.get(data, :span)) do
%Kreuzberg.CodeSpan{} = s -> s
map when is_map(map) -> Kreuzberg.CodeSpan.from_map(map)
_ -> %Kreuzberg.CodeSpan{}
end
%__MODULE__{
source: Map.get(data, "source", Map.get(data, :source, "")),
items: Map.get(data, "items", Map.get(data, :items, [])),
alias: Map.get(data, "alias", Map.get(data, :alias)),
is_wildcard: Map.get(data, "is_wildcard", Map.get(data, :is_wildcard, false)),
span: span
}
end
@spec to_map(t()) :: map()
def to_map(%__MODULE__{} = info) do
%{
"source" => info.source,
"items" => info.items,
"alias" => info.alias,
"is_wildcard" => info.is_wildcard,
"span" => Kreuzberg.CodeSpan.to_map(info.span)
}
end
end