23 lines
580 B
Elixir
23 lines
580 B
Elixir
defmodule Outlook.InternalTree.Basic do
|
|
|
|
alias Outlook.InternalTree.InternalNode
|
|
alias Outlook.InternalTree.TranslationUnit
|
|
|
|
def clean_eph([%TranslationUnit{} = node | rest]) do
|
|
[ %TranslationUnit{node | eph: %{}} | clean_eph(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
|