module Docs.Common (nodeWithoutText, treeWithoutText) where
import Docs.TextElement (TextElement (TextElement), TextElementID)
import Docs.TextRevision (TextElementRevision (TextElementRevision))
import Docs.Tree (Node (Node), Tree (Leaf, Tree))
nodeWithoutText :: Node TextElementRevision -> Node TextElementID
nodeWithoutText :: Node TextElementRevision -> Node TextElementID
nodeWithoutText (Node NodeHeader
header [Tree TextElementRevision]
children) =
NodeHeader -> [Tree TextElementID] -> Node TextElementID
forall a. NodeHeader -> [Tree a] -> Node a
Node NodeHeader
header ([Tree TextElementID] -> Node TextElementID)
-> [Tree TextElementID] -> Node TextElementID
forall a b. (a -> b) -> a -> b
$ Tree TextElementRevision -> Tree TextElementID
treeWithoutText (Tree TextElementRevision -> Tree TextElementID)
-> [Tree TextElementRevision] -> [Tree TextElementID]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Tree TextElementRevision]
children
treeWithoutText :: Tree TextElementRevision -> Tree TextElementID
treeWithoutText :: Tree TextElementRevision -> Tree TextElementID
treeWithoutText (Tree Node TextElementRevision
node) = Node TextElementID -> Tree TextElementID
forall a. Node a -> Tree a
Tree (Node TextElementID -> Tree TextElementID)
-> Node TextElementID -> Tree TextElementID
forall a b. (a -> b) -> a -> b
$ Node TextElementRevision -> Node TextElementID
nodeWithoutText Node TextElementRevision
node
treeWithoutText (Leaf (TextElementRevision (TextElement TextElementID
id_ TextElementKind
_ TextElementKind
_) Maybe TextRevision
_)) = TextElementID -> Tree TextElementID
forall a. a -> Tree a
Leaf TextElementID
id_