|
|
|
@ -23,15 +23,15 @@ xpNonemptyText :: PU Text NonemptyText |
|
|
|
xpNonemptyText = ("xpNonemptyText" , "") <?+> xpWrap Nonempty fromNonempty xpText |
|
|
|
xpNonemptyText = ("xpNonemptyText" , "") <?+> xpWrap Nonempty fromNonempty xpText |
|
|
|
|
|
|
|
|
|
|
|
xpStreamElement :: PU [Node] (Either StreamErrorInfo XmppElement) |
|
|
|
xpStreamElement :: PU [Node] (Either StreamErrorInfo XmppElement) |
|
|
|
xpStreamElement = xpEither xpStreamError $ |
|
|
|
xpStreamElement = xpEither xpStreamError $ xpAlt elemSel |
|
|
|
xpWrap (\v -> case v of |
|
|
|
[ xpWrap XmppStanza (\(XmppStanza x) -> x) xpStanza |
|
|
|
Left l -> XmppStanza l |
|
|
|
, xpWrap XmppNonza (\(XmppNonza x) -> x) xpElemVerbatim |
|
|
|
Right r -> XmppNonza r |
|
|
|
] |
|
|
|
) |
|
|
|
where |
|
|
|
( \v -> case v of |
|
|
|
-- Selector for which pickler to execute above. |
|
|
|
XmppStanza l -> Left l |
|
|
|
elemSel :: XmppElement -> Int |
|
|
|
XmppNonza r -> Right r) |
|
|
|
elemSel (XmppStanza _) = 0 |
|
|
|
$ xpEither xpStanza xpElemVerbatim |
|
|
|
elemSel (XmppNonza _) = 1 |
|
|
|
|
|
|
|
|
|
|
|
xpStreamStanza :: PU [Node] (Either StreamErrorInfo Stanza) |
|
|
|
xpStreamStanza :: PU [Node] (Either StreamErrorInfo Stanza) |
|
|
|
xpStreamStanza = xpEither xpStreamError xpStanza |
|
|
|
xpStreamStanza = xpEither xpStreamError xpStanza |
|
|
|
|