Files
phoenix-ausblick/lib/outlook/internal_tree/basic.ex
Thelonius Kort b48274eaef Add :eph field to %TranslationUnit{} and remove :sibling_with
Using :eph from now on to store ephemeral data like :sibling_with. Additionally
added cleaning up :eph before saving to db. And renamed InternalTree.Basic
to InternalTree.RawInternalBasic to make clear that it contains function
for an intermediary tree structure.
2022-12-29 22:09:26 +01:00

23 lines
540 B
Elixir

defmodule Outlook.InternalTree.Basic do
alias Outlook.InternalTree.InternalNode
alias Outlook.InternalTree.TranslationUnit
def clean_eph([%TranslationUnit{} = node | rest]) do
[ node | rest ]
end
def clean_eph([%InternalNode{type: :element} = node | rest]) do
[ %InternalNode{node |
eph: %{},
content: clean_eph(node.content)}
| clean_eph(rest) ]
end
def clean_eph([%{type: _} = node | rest]) do
[ %InternalNode{node | eph: %{}} | clean_eph(rest) ]
end
def clean_eph([]), do: []
end