def serialize.element
gralha-xml-doc@0.1.0.1 · xml.bend:441
import gralha-xml-doc@0.1.0.1/xml.bend as Xml
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
441def serialize.element(+n: String, as: List<&2, Attr>, kids: List<&2, Element>, txt: String, +acc: String,
442 children: List<&2, Element> -> String -> String) -> String:
443 +isDocument = U.string.equal(n, "#document")
444 +isText = U.string.equal(n, "#text")
445 +open = U.branch(String, isDocument || isText, _ => acc,
446 _ => SCon{Chr{62}, serialize.attrs.rev(as, U.rev(n, SCon{Chr{60}, acc}))})
447 +body = children(U.choose(List<&2, Element>, isText, Nil{}, kids))(U.choose(String, isDocument, open, escape.rev(txt, open)))
448 U.branch(String, isDocument || isText, _ => body, _ => SCon{Chr{62}, U.rev(n, SCon{Chr{47}, SCon{Chr{60}, body}})})
449
450@unsafe